.class public Landroid/widget/MyListView;
.super Landroid/widget/MyAbsListView;
.source "MyListView.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Landroid/widget/MyListView$1;,
        Landroid/widget/MyListView$SavedState;,
        Landroid/widget/MyListView$ArrowScrollFocusResult;,
        Landroid/widget/MyListView$FixedViewInfo;
    }
.end annotation


# static fields
.field public static final CHOICE_MODE_MULTIPLE:I = 0x2

.field public static final CHOICE_MODE_NONE:I = 0x0

.field public static final CHOICE_MODE_SINGLE:I = 0x1

.field private static final MAX_SCROLL_FACTOR:F = 0.33f

.field private static final MIN_SCROLL_PREVIEW_PIXELS:I = 0x2

.field static final NO_POSITION:I = -0x1


# instance fields
.field private mAreAllItemsSelectable:Z

.field private mArrowScrollFocusResult:Landroid/widget/MyListView$ArrowScrollFocusResult;

.field private mCheckStates:Landroid/util/SparseBooleanArray;

.field private mChoiceMode:I

.field private mClipDivider:Z

.field mDivider:Landroid/graphics/drawable/Drawable;

.field mDividerHeight:I

.field private mFooterDividersEnabled:Z

.field private mFooterViewInfos:Ljava/util/ArrayList;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/ArrayList",
            "<",
            "Landroid/widget/MyListView$FixedViewInfo;",
            ">;"
        }
    .end annotation
.end field

.field mFooterViewWithoutDivider:Landroid/view/View;

.field private mHeaderDividersEnabled:Z

.field private mHeaderViewInfos:Ljava/util/ArrayList;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/ArrayList",
            "<",
            "Landroid/widget/MyListView$FixedViewInfo;",
            ">;"
        }
    .end annotation
.end field

.field private mItemsCanFocus:Z

.field private final mTempRect:Landroid/graphics/Rect;


# direct methods
.method public constructor <init>(Landroid/content/Context;)V
    .locals 1
    .parameter "context"

    .prologue
    .line 141
    const/4 v0, 0x0

    invoke-direct {p0, p1, v0}, Landroid/widget/MyListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V

    .line 142
    return-void
.end method

.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
    .locals 1
    .parameter "context"
    .parameter "attrs"

    .prologue
    .line 145
    const v0, 0x1010074

    invoke-direct {p0, p1, p2, v0}, Landroid/widget/MyListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V

    .line 146
    return-void
.end method

.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
    .locals 8
    .parameter "context"
    .parameter "attrs"
    .parameter "defStyle"

    .prologue
    const/4 v7, 0x1

    const/4 v6, 0x0

    .line 149
    invoke-direct {p0, p1, p2, p3}, Landroid/widget/MyAbsListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V

    .line 116
    invoke-static {}, Lcom/google/android/collect/Lists;->newArrayList()Ljava/util/ArrayList;

    move-result-object v4

    iput-object v4, p0, Landroid/widget/MyListView;->mHeaderViewInfos:Ljava/util/ArrayList;

    .line 117
    invoke-static {}, Lcom/google/android/collect/Lists;->newArrayList()Ljava/util/ArrayList;

    move-result-object v4

    iput-object v4, p0, Landroid/widget/MyListView;->mFooterViewInfos:Ljava/util/ArrayList;

    .line 125
    iput-boolean v7, p0, Landroid/widget/MyListView;->mAreAllItemsSelectable:Z

    .line 127
    iput-boolean v6, p0, Landroid/widget/MyListView;->mItemsCanFocus:Z

    .line 129
    iput v6, p0, Landroid/widget/MyListView;->mChoiceMode:I

    .line 134
    new-instance v4, Landroid/graphics/Rect;

    invoke-direct {v4}, Landroid/graphics/Rect;-><init>()V

    iput-object v4, p0, Landroid/widget/MyListView;->mTempRect:Landroid/graphics/Rect;

    .line 138
    new-instance v4, Landroid/widget/MyListView$ArrowScrollFocusResult;

    const/4 v5, 0x0

    invoke-direct {v4, v5}, Landroid/widget/MyListView$ArrowScrollFocusResult;-><init>(Landroid/widget/MyListView$1;)V

    iput-object v4, p0, Landroid/widget/MyListView;->mArrowScrollFocusResult:Landroid/widget/MyListView$ArrowScrollFocusResult;

    .line 151
    sget-object v4, Lcom/android/internal/R$styleable;->ListView:[I

    invoke-virtual {p1, p2, v4, p3, v6}, Landroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray;

    move-result-object v0

    .line 154
    .local v0, a:Landroid/content/res/TypedArray;
    invoke-virtual {v0, v6}, Landroid/content/res/TypedArray;->getTextArray(I)[Ljava/lang/CharSequence;

    move-result-object v3

    .line 156
    .local v3, entries:[Ljava/lang/CharSequence;
    if-eqz v3, :cond_0

    .line 157
    new-instance v4, Landroid/widget/ArrayAdapter;

    const v5, 0x1090003

    invoke-direct {v4, p1, v5, v3}, Landroid/widget/ArrayAdapter;-><init>(Landroid/content/Context;I[Ljava/lang/Object;)V

    invoke-virtual {p0, v4}, Landroid/widget/MyListView;->setAdapter(Landroid/widget/ListAdapter;)V

    .line 161
    :cond_0
    invoke-virtual {v0, v7}, Landroid/content/res/TypedArray;->getDrawable(I)Landroid/graphics/drawable/Drawable;

    move-result-object v1

    .line 162
    .local v1, d:Landroid/graphics/drawable/Drawable;
    if-eqz v1, :cond_1

    .line 164
    invoke-virtual {p0, v1}, Landroid/widget/MyListView;->setDivider(Landroid/graphics/drawable/Drawable;)V

    .line 168
    :cond_1
    const/4 v4, 0x2

    invoke-virtual {v0, v4, v6}, Landroid/content/res/TypedArray;->getDimensionPixelSize(II)I

    move-result v2

    .line 170
    .local v2, dividerHeight:I
    if-eqz v2, :cond_2

    .line 171
    invoke-virtual {p0, v2}, Landroid/widget/MyListView;->setDividerHeight(I)V

    .line 174
    :cond_2
    const/4 v4, 0x4

    invoke-virtual {v0, v4, v7}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z

    move-result v4

    iput-boolean v4, p0, Landroid/widget/MyListView;->mHeaderDividersEnabled:Z

    .line 175
    const/4 v4, 0x5

    invoke-virtual {v0, v4, v7}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z

    move-result v4

    iput-boolean v4, p0, Landroid/widget/MyListView;->mFooterDividersEnabled:Z

    .line 177
    invoke-virtual {v0}, Landroid/content/res/TypedArray;->recycle()V

    .line 178
    return-void
.end method

.method private addViewAbove(Landroid/view/View;I)Landroid/view/View;
    .locals 8
    .parameter "theView"
    .parameter "position"

    .prologue
    const/4 v4, 0x0

    .line 2745
    const/4 v0, 0x1

    sub-int v2, p2, v0

    .line 2746
    .local v2, abovePosition:I
    invoke-virtual {p0, v2}, Landroid/widget/MyListView;->obtainView(I)Landroid/view/View;

    move-result-object v1

    .line 2747
    .local v1, view:Landroid/view/View;
    invoke-virtual {p1}, Landroid/view/View;->getTop()I

    move-result v0

    iget v5, p0, Landroid/widget/MyListView;->mDividerHeight:I

    sub-int v3, v0, v5

    .line 2748
    .local v3, edgeOfNewChild:I
    iget-object v0, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v5, v0, Landroid/graphics/Rect;->left:I

    move-object v0, p0

    move v6, v4

    move v7, v4

    invoke-direct/range {v0 .. v7}, Landroid/widget/MyListView;->setupChild(Landroid/view/View;IIZIZZ)V

    .line 2749
    return-object v1
.end method

.method private addViewBelow(Landroid/view/View;I)Landroid/view/View;
    .locals 8
    .parameter "theView"
    .parameter "position"

    .prologue
    const/4 v6, 0x0

    .line 2753
    add-int/lit8 v2, p2, 0x1

    .line 2754
    .local v2, belowPosition:I
    invoke-virtual {p0, v2}, Landroid/widget/MyListView;->obtainView(I)Landroid/view/View;

    move-result-object v1

    .line 2755
    .local v1, view:Landroid/view/View;
    invoke-virtual {p1}, Landroid/view/View;->getBottom()I

    move-result v0

    iget v4, p0, Landroid/widget/MyListView;->mDividerHeight:I

    add-int v3, v0, v4

    .line 2756
    .local v3, edgeOfNewChild:I
    const/4 v4, 0x1

    iget-object v0, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v5, v0, Landroid/graphics/Rect;->left:I

    move-object v0, p0

    move v7, v6

    invoke-direct/range {v0 .. v7}, Landroid/widget/MyListView;->setupChild(Landroid/view/View;IIZIZZ)V

    .line 2757
    return-object v1
.end method

.method private adjustViewsUpOrDown()V
    .locals 6

    .prologue
    .line 193
    invoke-virtual {p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v1

    .line 196
    .local v1, childCount:I
    if-lez v1, :cond_2

    .line 199
    iget-boolean v3, p0, Landroid/widget/MyListView;->mStackFromBottom:Z

    if-nez v3, :cond_3

    .line 202
    const/4 v3, 0x0

    invoke-virtual {p0, v3}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v0

    .line 203
    .local v0, child:Landroid/view/View;
    invoke-virtual {v0}, Landroid/view/View;->getTop()I

    move-result v3

    iget-object v4, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v4, v4, Landroid/graphics/Rect;->top:I

    sub-int v2, v3, v4

    .line 204
    .local v2, delta:I
    iget v3, p0, Landroid/widget/MyListView;->mFirstPosition:I

    if-eqz v3, :cond_0

    .line 207
    iget v3, p0, Landroid/widget/MyListView;->mDividerHeight:I

    sub-int/2addr v2, v3

    .line 209
    :cond_0
    if-gez v2, :cond_1

    .line 211
    const/4 v2, 0x0

    .line 229
    :cond_1
    :goto_0
    if-eqz v2, :cond_2

    .line 230
    neg-int v3, v2

    invoke-virtual {p0, v3}, Landroid/widget/MyListView;->offsetChildrenTopAndBottom(I)V

    .line 233
    .end local v0           #child:Landroid/view/View;
    .end local v2           #delta:I
    :cond_2
    return-void

    .line 215
    :cond_3
    const/4 v3, 0x1

    sub-int v3, v1, v3

    invoke-virtual {p0, v3}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v0

    .line 216
    .restart local v0       #child:Landroid/view/View;
    invoke-virtual {v0}, Landroid/view/View;->getBottom()I

    move-result v3

    invoke-virtual {p0}, Landroid/widget/MyListView;->getHeight()I

    move-result v4

    iget-object v5, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v5, v5, Landroid/graphics/Rect;->bottom:I

    sub-int/2addr v4, v5

    sub-int v2, v3, v4

    .line 218
    .restart local v2       #delta:I
    iget v3, p0, Landroid/widget/MyListView;->mFirstPosition:I

    add-int/2addr v3, v1

    iget v4, p0, Landroid/widget/MyListView;->mItemCount:I

    if-ge v3, v4, :cond_4

    .line 221
    iget v3, p0, Landroid/widget/MyListView;->mDividerHeight:I

    add-int/2addr v2, v3

    .line 224
    :cond_4
    if-lez v2, :cond_1

    .line 225
    const/4 v2, 0x0

    goto :goto_0
.end method

.method private amountToScroll(II)I
    .locals 12
    .parameter "direction"
    .parameter "nextSelectedPosition"

    .prologue
    .line 2361
    invoke-virtual {p0}, Landroid/widget/MyListView;->getHeight()I

    move-result v10

    iget-object v11, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v11, v11, Landroid/graphics/Rect;->bottom:I

    sub-int v4, v10, v11

    .line 2362
    .local v4, listBottom:I
    iget-object v10, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v5, v10, Landroid/graphics/Rect;->top:I

    .line 2364
    .local v5, listTop:I
    invoke-virtual {p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v7

    .line 2366
    .local v7, numChildren:I
    const/16 v10, 0x82

    if-ne p1, v10, :cond_5

    .line 2367
    const/4 v10, 0x1

    sub-int v3, v7, v10

    .line 2368
    .local v3, indexToMakeVisible:I
    const/4 v10, -0x1

    if-eq p2, v10, :cond_0

    .line 2369
    iget v10, p0, Landroid/widget/MyListView;->mFirstPosition:I

    sub-int v3, p2, v10

    .line 2372
    :cond_0
    iget v10, p0, Landroid/widget/MyListView;->mFirstPosition:I

    add-int v8, v10, v3

    .line 2373
    .local v8, positionToMakeVisible:I
    invoke-virtual {p0, v3}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v9

    .line 2375
    .local v9, viewToMakeVisible:Landroid/view/View;
    move v1, v4

    .line 2376
    .local v1, goalBottom:I
    iget v10, p0, Landroid/widget/MyListView;->mItemCount:I

    const/4 v11, 0x1

    sub-int/2addr v10, v11

    if-ge v8, v10, :cond_1

    .line 2377
    invoke-direct {p0}, Landroid/widget/MyListView;->getArrowScrollPreviewLength()I

    move-result v10

    sub-int/2addr v1, v10

    .line 2380
    :cond_1
    invoke-virtual {v9}, Landroid/view/View;->getBottom()I

    move-result v10

    if-gt v10, v1, :cond_2

    .line 2382
    const/4 v10, 0x0

    .line 2428
    .end local v1           #goalBottom:I
    :goto_0
    return v10

    .line 2385
    .restart local v1       #goalBottom:I
    :cond_2
    const/4 v10, -0x1

    if-eq p2, v10, :cond_3

    invoke-virtual {v9}, Landroid/view/View;->getTop()I

    move-result v10

    sub-int v10, v1, v10

    invoke-virtual {p0}, Landroid/widget/MyListView;->getMaxScrollAmount()I

    move-result v11

    if-lt v10, v11, :cond_3

    .line 2388
    const/4 v10, 0x0

    goto :goto_0

    .line 2391
    :cond_3
    invoke-virtual {v9}, Landroid/view/View;->getBottom()I

    move-result v10

    sub-int v0, v10, v1

    .line 2393
    .local v0, amountToScroll:I
    iget v10, p0, Landroid/widget/MyListView;->mFirstPosition:I

    add-int/2addr v10, v7

    iget v11, p0, Landroid/widget/MyListView;->mItemCount:I

    if-ne v10, v11, :cond_4

    .line 2395
    const/4 v10, 0x1

    sub-int v10, v7, v10

    invoke-virtual {p0, v10}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v10

    invoke-virtual {v10}, Landroid/view/View;->getBottom()I

    move-result v10

    sub-int v6, v10, v4

    .line 2396
    .local v6, max:I
    invoke-static {v0, v6}, Ljava/lang/Math;->min(II)I

    move-result v0

    .line 2399
    .end local v6           #max:I
    :cond_4
    invoke-virtual {p0}, Landroid/widget/MyListView;->getMaxScrollAmount()I

    move-result v10

    invoke-static {v0, v10}, Ljava/lang/Math;->min(II)I

    move-result v10

    goto :goto_0

    .line 2401
    .end local v0           #amountToScroll:I
    .end local v1           #goalBottom:I
    .end local v3           #indexToMakeVisible:I
    .end local v8           #positionToMakeVisible:I
    .end local v9           #viewToMakeVisible:Landroid/view/View;
    :cond_5
    const/4 v3, 0x0

    .line 2402
    .restart local v3       #indexToMakeVisible:I
    const/4 v10, -0x1

    if-eq p2, v10, :cond_6

    .line 2403
    iget v10, p0, Landroid/widget/MyListView;->mFirstPosition:I

    sub-int v3, p2, v10

    .line 2405
    :cond_6
    iget v10, p0, Landroid/widget/MyListView;->mFirstPosition:I

    add-int v8, v10, v3

    .line 2406
    .restart local v8       #positionToMakeVisible:I
    invoke-virtual {p0, v3}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v9

    .line 2407
    .restart local v9       #viewToMakeVisible:Landroid/view/View;
    move v2, v5

    .line 2408
    .local v2, goalTop:I
    if-lez v8, :cond_7

    .line 2409
    invoke-direct {p0}, Landroid/widget/MyListView;->getArrowScrollPreviewLength()I

    move-result v10

    add-int/2addr v2, v10

    .line 2411
    :cond_7
    invoke-virtual {v9}, Landroid/view/View;->getTop()I

    move-result v10

    if-lt v10, v2, :cond_8

    .line 2413
    const/4 v10, 0x0

    goto :goto_0

    .line 2416
    :cond_8
    const/4 v10, -0x1

    if-eq p2, v10, :cond_9

    invoke-virtual {v9}, Landroid/view/View;->getBottom()I

    move-result v10

    sub-int/2addr v10, v2

    invoke-virtual {p0}, Landroid/widget/MyListView;->getMaxScrollAmount()I

    move-result v11

    if-lt v10, v11, :cond_9

    .line 2419
    const/4 v10, 0x0

    goto :goto_0

    .line 2422
    :cond_9
    invoke-virtual {v9}, Landroid/view/View;->getTop()I

    move-result v10

    sub-int v0, v2, v10

    .line 2423
    .restart local v0       #amountToScroll:I
    iget v10, p0, Landroid/widget/MyListView;->mFirstPosition:I

    if-nez v10, :cond_a

    .line 2425
    const/4 v10, 0x0

    invoke-virtual {p0, v10}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v10

    invoke-virtual {v10}, Landroid/view/View;->getTop()I

    move-result v10

    sub-int v6, v5, v10

    .line 2426
    .restart local v6       #max:I
    invoke-static {v0, v6}, Ljava/lang/Math;->min(II)I

    move-result v0

    .line 2428
    .end local v6           #max:I
    :cond_a
    invoke-virtual {p0}, Landroid/widget/MyListView;->getMaxScrollAmount()I

    move-result v10

    invoke-static {v0, v10}, Ljava/lang/Math;->min(II)I

    move-result v10

    goto/16 :goto_0
.end method

.method private amountToScrollToNewFocus(ILandroid/view/View;I)I
    .locals 4
    .parameter "direction"
    .parameter "newFocus"
    .parameter "positionOfNewFocus"

    .prologue
    .line 2620
    const/4 v0, 0x0

    .line 2621
    .local v0, amountToScroll:I
    iget-object v2, p0, Landroid/widget/MyListView;->mTempRect:Landroid/graphics/Rect;

    invoke-virtual {p2, v2}, Landroid/view/View;->getDrawingRect(Landroid/graphics/Rect;)V

    .line 2622
    iget-object v2, p0, Landroid/widget/MyListView;->mTempRect:Landroid/graphics/Rect;

    invoke-virtual {p0, p2, v2}, Landroid/widget/MyListView;->offsetDescendantRectToMyCoords(Landroid/view/View;Landroid/graphics/Rect;)V

    .line 2623
    const/16 v2, 0x21

    if-ne p1, v2, :cond_1

    .line 2624
    iget-object v2, p0, Landroid/widget/MyListView;->mTempRect:Landroid/graphics/Rect;

    iget v2, v2, Landroid/graphics/Rect;->top:I

    iget-object v3, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v3, v3, Landroid/graphics/Rect;->top:I

    if-ge v2, v3, :cond_0

    .line 2625
    iget-object v2, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v2, v2, Landroid/graphics/Rect;->top:I

    iget-object v3, p0, Landroid/widget/MyListView;->mTempRect:Landroid/graphics/Rect;

    iget v3, v3, Landroid/graphics/Rect;->top:I

    sub-int v0, v2, v3

    .line 2626
    if-lez p3, :cond_0

    .line 2627
    invoke-direct {p0}, Landroid/widget/MyListView;->getArrowScrollPreviewLength()I

    move-result v2

    add-int/2addr v0, v2

    .line 2639
    :cond_0
    :goto_0
    return v0

    .line 2631
    :cond_1
    invoke-virtual {p0}, Landroid/widget/MyListView;->getHeight()I

    move-result v2

    iget-object v3, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v3, v3, Landroid/graphics/Rect;->bottom:I

    sub-int v1, v2, v3

    .line 2632
    .local v1, listBottom:I
    iget-object v2, p0, Landroid/widget/MyListView;->mTempRect:Landroid/graphics/Rect;

    iget v2, v2, Landroid/graphics/Rect;->bottom:I

    if-le v2, v1, :cond_0

    .line 2633
    iget-object v2, p0, Landroid/widget/MyListView;->mTempRect:Landroid/graphics/Rect;

    iget v2, v2, Landroid/graphics/Rect;->bottom:I

    sub-int v0, v2, v1

    .line 2634
    iget v2, p0, Landroid/widget/MyListView;->mItemCount:I

    const/4 v3, 0x1

    sub-int/2addr v2, v3

    if-ge p3, v2, :cond_0

    .line 2635
    invoke-direct {p0}, Landroid/widget/MyListView;->getArrowScrollPreviewLength()I

    move-result v2

    add-int/2addr v0, v2

    goto :goto_0
.end method

.method private arrowScrollFocused(I)Landroid/widget/MyListView$ArrowScrollFocusResult;
    .locals 20
    .parameter "direction"

    .prologue
    .line 2518
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->getSelectedView()Landroid/view/View;

    move-result-object v14

    .line 2520
    .local v14, selectedView:Landroid/view/View;
    if-eqz v14, :cond_2

    invoke-virtual {v14}, Landroid/view/View;->hasFocus()Z

    move-result v17

    if-eqz v17, :cond_2

    .line 2521
    invoke-virtual {v14}, Landroid/view/View;->findFocus()Landroid/view/View;

    move-result-object v11

    .line 2522
    .local v11, oldFocus:Landroid/view/View;
    invoke-static {}, Landroid/view/FocusFinder;->getInstance()Landroid/view/FocusFinder;

    move-result-object v17

    move-object/from16 v0, v17

    move-object/from16 v1, p0

    move-object v2, v11

    move/from16 v3, p1

    invoke-virtual {v0, v1, v2, v3}, Landroid/view/FocusFinder;->findNextFocus(Landroid/view/ViewGroup;Landroid/view/View;I)Landroid/view/View;

    move-result-object v10

    .line 2547
    .end local v11           #oldFocus:Landroid/view/View;
    .local v10, newFocus:Landroid/view/View;
    :goto_0
    if-eqz v10, :cond_c

    .line 2548
    move-object/from16 v0, p0

    move-object v1, v10

    invoke-direct {v0, v1}, Landroid/widget/MyListView;->positionOfNewFocus(Landroid/view/View;)I

    move-result v12

    .line 2552
    .local v12, positionOfNewFocus:I
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mSelectedPosition:I

    move/from16 v17, v0

    const/16 v18, -0x1

    move/from16 v0, v17

    move/from16 v1, v18

    if-eq v0, v1, :cond_a

    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mSelectedPosition:I

    move/from16 v17, v0

    move v0, v12

    move/from16 v1, v17

    if-eq v0, v1, :cond_a

    .line 2553
    invoke-direct/range {p0 .. p1}, Landroid/widget/MyListView;->lookForSelectablePositionOnScreen(I)I

    move-result v13

    .line 2554
    .local v13, selectablePosition:I
    const/16 v17, -0x1

    move v0, v13

    move/from16 v1, v17

    if-eq v0, v1, :cond_a

    const/16 v17, 0x82

    move/from16 v0, p1

    move/from16 v1, v17

    if-ne v0, v1, :cond_0

    if-lt v13, v12, :cond_1

    :cond_0
    const/16 v17, 0x21

    move/from16 v0, p1

    move/from16 v1, v17

    if-ne v0, v1, :cond_a

    if-le v13, v12, :cond_a

    .line 2557
    :cond_1
    const/16 v17, 0x0

    .line 2579
    .end local v12           #positionOfNewFocus:I
    .end local v13           #selectablePosition:I
    :goto_1
    return-object v17

    .line 2524
    .end local v10           #newFocus:Landroid/view/View;
    :cond_2
    const/16 v17, 0x82

    move/from16 v0, p1

    move/from16 v1, v17

    if-ne v0, v1, :cond_6

    .line 2525
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mFirstPosition:I

    move/from16 v17, v0

    if-lez v17, :cond_3

    const/16 v17, 0x1

    move/from16 v15, v17

    .line 2526
    .local v15, topFadingEdgeShowing:Z
    :goto_2
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    move-object/from16 v17, v0

    move-object/from16 v0, v17

    iget v0, v0, Landroid/graphics/Rect;->top:I

    move/from16 v17, v0

    if-eqz v15, :cond_4

    invoke-direct/range {p0 .. p0}, Landroid/widget/MyListView;->getArrowScrollPreviewLength()I

    move-result v18

    :goto_3
    add-int v8, v17, v18

    .line 2528
    .local v8, listTop:I
    if-eqz v14, :cond_5

    invoke-virtual {v14}, Landroid/view/View;->getTop()I

    move-result v17

    move/from16 v0, v17

    move v1, v8

    if-le v0, v1, :cond_5

    invoke-virtual {v14}, Landroid/view/View;->getTop()I

    move-result v17

    move/from16 v16, v17

    .line 2532
    .local v16, ySearchPoint:I
    :goto_4
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mTempRect:Landroid/graphics/Rect;

    move-object/from16 v17, v0

    const/16 v18, 0x0

    const/16 v19, 0x0

    move-object/from16 v0, v17

    move/from16 v1, v18

    move/from16 v2, v16

    move/from16 v3, v19

    move/from16 v4, v16

    invoke-virtual {v0, v1, v2, v3, v4}, Landroid/graphics/Rect;->set(IIII)V

    .line 2544
    .end local v8           #listTop:I
    .end local v15           #topFadingEdgeShowing:Z
    :goto_5
    invoke-static {}, Landroid/view/FocusFinder;->getInstance()Landroid/view/FocusFinder;

    move-result-object v17

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mTempRect:Landroid/graphics/Rect;

    move-object/from16 v18, v0

    move-object/from16 v0, v17

    move-object/from16 v1, p0

    move-object/from16 v2, v18

    move/from16 v3, p1

    invoke-virtual {v0, v1, v2, v3}, Landroid/view/FocusFinder;->findNextFocusFromRect(Landroid/view/ViewGroup;Landroid/graphics/Rect;I)Landroid/view/View;

    move-result-object v10

    .restart local v10       #newFocus:Landroid/view/View;
    goto/16 :goto_0

    .line 2525
    .end local v10           #newFocus:Landroid/view/View;
    .end local v16           #ySearchPoint:I
    :cond_3
    const/16 v17, 0x0

    move/from16 v15, v17

    goto :goto_2

    .line 2526
    .restart local v15       #topFadingEdgeShowing:Z
    :cond_4
    const/16 v18, 0x0

    goto :goto_3

    .restart local v8       #listTop:I
    :cond_5
    move/from16 v16, v8

    .line 2528
    goto :goto_4

    .line 2534
    .end local v8           #listTop:I
    .end local v15           #topFadingEdgeShowing:Z
    :cond_6
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mFirstPosition:I

    move/from16 v17, v0

    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v18

    add-int v17, v17, v18

    const/16 v18, 0x1

    sub-int v17, v17, v18

    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mItemCount:I

    move/from16 v18, v0

    move/from16 v0, v17

    move/from16 v1, v18

    if-ge v0, v1, :cond_7

    const/16 v17, 0x1

    move/from16 v5, v17

    .line 2536
    .local v5, bottomFadingEdgeShowing:Z
    :goto_6
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->getHeight()I

    move-result v17

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    move-object/from16 v18, v0

    move-object/from16 v0, v18

    iget v0, v0, Landroid/graphics/Rect;->bottom:I

    move/from16 v18, v0

    sub-int v17, v17, v18

    if-eqz v5, :cond_8

    invoke-direct/range {p0 .. p0}, Landroid/widget/MyListView;->getArrowScrollPreviewLength()I

    move-result v18

    :goto_7
    sub-int v7, v17, v18

    .line 2538
    .local v7, listBottom:I
    if-eqz v14, :cond_9

    invoke-virtual {v14}, Landroid/view/View;->getBottom()I

    move-result v17

    move/from16 v0, v17

    move v1, v7

    if-ge v0, v1, :cond_9

    invoke-virtual {v14}, Landroid/view/View;->getBottom()I

    move-result v17

    move/from16 v16, v17

    .line 2542
    .restart local v16       #ySearchPoint:I
    :goto_8
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mTempRect:Landroid/graphics/Rect;

    move-object/from16 v17, v0

    const/16 v18, 0x0

    const/16 v19, 0x0

    move-object/from16 v0, v17

    move/from16 v1, v18

    move/from16 v2, v16

    move/from16 v3, v19

    move/from16 v4, v16

    invoke-virtual {v0, v1, v2, v3, v4}, Landroid/graphics/Rect;->set(IIII)V

    goto/16 :goto_5

    .line 2534
    .end local v5           #bottomFadingEdgeShowing:Z
    .end local v7           #listBottom:I
    .end local v16           #ySearchPoint:I
    :cond_7
    const/16 v17, 0x0

    move/from16 v5, v17

    goto :goto_6

    .line 2536
    .restart local v5       #bottomFadingEdgeShowing:Z
    :cond_8
    const/16 v18, 0x0

    goto :goto_7

    .restart local v7       #listBottom:I
    :cond_9
    move/from16 v16, v7

    .line 2538
    goto :goto_8

    .line 2561
    .end local v5           #bottomFadingEdgeShowing:Z
    .end local v7           #listBottom:I
    .restart local v10       #newFocus:Landroid/view/View;
    .restart local v12       #positionOfNewFocus:I
    :cond_a
    move-object/from16 v0, p0

    move/from16 v1, p1

    move-object v2, v10

    move v3, v12

    invoke-direct {v0, v1, v2, v3}, Landroid/widget/MyListView;->amountToScrollToNewFocus(ILandroid/view/View;I)I

    move-result v6

    .line 2563
    .local v6, focusScroll:I
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->getMaxScrollAmount()I

    move-result v9

    .line 2564
    .local v9, maxScrollAmount:I
    if-ge v6, v9, :cond_b

    .line 2566
    move-object v0, v10

    move/from16 v1, p1

    invoke-virtual {v0, v1}, Landroid/view/View;->requestFocus(I)Z

    .line 2567
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mArrowScrollFocusResult:Landroid/widget/MyListView$ArrowScrollFocusResult;

    move-object/from16 v17, v0

    move-object/from16 v0, v17

    move v1, v12

    move v2, v6

    invoke-virtual {v0, v1, v2}, Landroid/widget/MyListView$ArrowScrollFocusResult;->populate(II)V

    .line 2568
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mArrowScrollFocusResult:Landroid/widget/MyListView$ArrowScrollFocusResult;

    move-object/from16 v17, v0

    goto/16 :goto_1

    .line 2569
    :cond_b
    move-object/from16 v0, p0

    move-object v1, v10

    invoke-direct {v0, v1}, Landroid/widget/MyListView;->distanceToView(Landroid/view/View;)I

    move-result v17

    move/from16 v0, v17

    move v1, v9

    if-ge v0, v1, :cond_c

    .line 2574
    move-object v0, v10

    move/from16 v1, p1

    invoke-virtual {v0, v1}, Landroid/view/View;->requestFocus(I)Z

    .line 2575
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mArrowScrollFocusResult:Landroid/widget/MyListView$ArrowScrollFocusResult;

    move-object/from16 v17, v0

    move-object/from16 v0, v17

    move v1, v12

    move v2, v9

    invoke-virtual {v0, v1, v2}, Landroid/widget/MyListView$ArrowScrollFocusResult;->populate(II)V

    .line 2576
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mArrowScrollFocusResult:Landroid/widget/MyListView$ArrowScrollFocusResult;

    move-object/from16 v17, v0

    goto/16 :goto_1

    .line 2579
    .end local v6           #focusScroll:I
    .end local v9           #maxScrollAmount:I
    .end local v12           #positionOfNewFocus:I
    :cond_c
    const/16 v17, 0x0

    goto/16 :goto_1
.end method

.method private arrowScrollImpl(I)Z
    .locals 10
    .parameter "direction"

    .prologue
    const/4 v9, 0x1

    const/4 v8, -0x1

    const/4 v7, 0x0

    .line 2149
    invoke-virtual {p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v6

    if-gtz v6, :cond_0

    move v6, v7

    .line 2219
    :goto_0
    return v6

    .line 2153
    :cond_0
    invoke-virtual {p0}, Landroid/widget/MyListView;->getSelectedView()Landroid/view/View;

    move-result-object v5

    .line 2155
    .local v5, selectedView:Landroid/view/View;
    invoke-direct {p0, p1}, Landroid/widget/MyListView;->lookForSelectablePositionOnScreen(I)I

    move-result v4

    .line 2156
    .local v4, nextSelectedPosition:I
    invoke-direct {p0, p1, v4}, Landroid/widget/MyListView;->amountToScroll(II)I

    move-result v0

    .line 2159
    .local v0, amountToScroll:I
    iget-boolean v6, p0, Landroid/widget/MyListView;->mItemsCanFocus:Z

    if-eqz v6, :cond_8

    invoke-direct {p0, p1}, Landroid/widget/MyListView;->arrowScrollFocused(I)Landroid/widget/MyListView$ArrowScrollFocusResult;

    move-result-object v6

    move-object v1, v6

    .line 2160
    .local v1, focusResult:Landroid/widget/MyListView$ArrowScrollFocusResult;
    :goto_1
    if-eqz v1, :cond_1

    .line 2161
    invoke-virtual {v1}, Landroid/widget/MyListView$ArrowScrollFocusResult;->getSelectedPosition()I

    move-result v4

    .line 2162
    invoke-virtual {v1}, Landroid/widget/MyListView$ArrowScrollFocusResult;->getAmountToScroll()I

    move-result v0

    .line 2165
    :cond_1
    if-eqz v1, :cond_9

    move v3, v9

    .line 2166
    .local v3, needToRedraw:Z
    :goto_2
    if-eq v4, v8, :cond_3

    .line 2167
    if-eqz v1, :cond_a

    move v6, v9

    :goto_3
    invoke-direct {p0, v5, p1, v4, v6}, Landroid/widget/MyListView;->handleNewSelectionChange(Landroid/view/View;IIZ)V

    .line 2168
    invoke-virtual {p0, v4}, Landroid/widget/MyListView;->setSelectedPositionInt(I)V

    .line 2169
    invoke-virtual {p0, v4}, Landroid/widget/MyListView;->setNextSelectedPositionInt(I)V

    .line 2170
    invoke-virtual {p0}, Landroid/widget/MyListView;->getSelectedView()Landroid/view/View;

    move-result-object v5

    .line 2171
    iget-boolean v6, p0, Landroid/widget/MyListView;->mItemsCanFocus:Z

    if-eqz v6, :cond_2

    if-nez v1, :cond_2

    .line 2174
    invoke-virtual {p0}, Landroid/widget/MyListView;->getFocusedChild()Landroid/view/View;

    move-result-object v2

    .line 2175
    .local v2, focused:Landroid/view/View;
    if-eqz v2, :cond_2

    .line 2176
    invoke-virtual {v2}, Landroid/view/View;->clearFocus()V

    .line 2179
    .end local v2           #focused:Landroid/view/View;
    :cond_2
    const/4 v3, 0x1

    .line 2180
    invoke-virtual {p0}, Landroid/widget/MyListView;->checkSelectionChanged()V

    .line 2183
    :cond_3
    if-lez v0, :cond_4

    .line 2184
    const/16 v6, 0x21

    if-ne p1, v6, :cond_b

    move v6, v0

    :goto_4
    invoke-direct {p0, v6}, Landroid/widget/MyListView;->scrollListItemsBy(I)V

    .line 2185
    const/4 v3, 0x1

    .line 2190
    :cond_4
    iget-boolean v6, p0, Landroid/widget/MyListView;->mItemsCanFocus:Z

    if-eqz v6, :cond_5

    if-nez v1, :cond_5

    if-eqz v5, :cond_5

    invoke-virtual {v5}, Landroid/view/View;->hasFocus()Z

    move-result v6

    if-eqz v6, :cond_5

    .line 2192
    invoke-virtual {v5}, Landroid/view/View;->findFocus()Landroid/view/View;

    move-result-object v2

    .line 2193
    .restart local v2       #focused:Landroid/view/View;
    invoke-direct {p0, v2}, Landroid/widget/MyListView;->distanceToView(Landroid/view/View;)I

    move-result v6

    if-lez v6, :cond_5

    .line 2194
    invoke-virtual {v2}, Landroid/view/View;->clearFocus()V

    .line 2199
    .end local v2           #focused:Landroid/view/View;
    :cond_5
    if-ne v4, v8, :cond_6

    if-eqz v5, :cond_6

    invoke-direct {p0, v5, p0}, Landroid/widget/MyListView;->isViewAncestorOf(Landroid/view/View;Landroid/view/View;)Z

    move-result v6

    if-nez v6, :cond_6

    .line 2201
    const/4 v5, 0x0

    .line 2202
    invoke-virtual {p0}, Landroid/widget/MyListView;->hideSelector()V

    .line 2206
    iput v8, p0, Landroid/widget/MyListView;->mResurrectToPosition:I

    .line 2209
    :cond_6
    if-eqz v3, :cond_c

    .line 2210
    if-eqz v5, :cond_7

    .line 2211
    invoke-virtual {p0, v5}, Landroid/widget/MyListView;->positionSelector(Landroid/view/View;)V

    .line 2212
    invoke-virtual {v5}, Landroid/view/View;->getTop()I

    move-result v6

    iput v6, p0, Landroid/widget/MyListView;->mSelectedTop:I

    .line 2214
    :cond_7
    invoke-virtual {p0}, Landroid/widget/MyListView;->invalidate()V

    .line 2215
    invoke-virtual {p0}, Landroid/widget/MyListView;->invokeOnItemScrollListener()V

    move v6, v9

    .line 2216
    goto/16 :goto_0

    .line 2159
    .end local v1           #focusResult:Landroid/widget/MyListView$ArrowScrollFocusResult;
    .end local v3           #needToRedraw:Z
    :cond_8
    const/4 v6, 0x0

    move-object v1, v6

    goto :goto_1

    .restart local v1       #focusResult:Landroid/widget/MyListView$ArrowScrollFocusResult;
    :cond_9
    move v3, v7

    .line 2165
    goto :goto_2

    .restart local v3       #needToRedraw:Z
    :cond_a
    move v6, v7

    .line 2167
    goto :goto_3

    .line 2184
    :cond_b
    neg-int v6, v0

    goto :goto_4

    :cond_c
    move v6, v7

    .line 2219
    goto/16 :goto_0
.end method

.method private commonKey(IILandroid/view/KeyEvent;)Z
    .locals 7
    .parameter "keyCode"
    .parameter "count"
    .parameter "event"

    .prologue
    const/4 v6, 0x0

    const/16 v5, 0x82

    const/16 v4, 0x21

    const/4 v3, 0x1

    .line 1895
    iget-object v2, p0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    if-nez v2, :cond_0

    move v2, v6

    .line 1988
    :goto_0
    return v2

    .line 1899
    :cond_0
    iget-boolean v2, p0, Landroid/widget/MyListView;->mDataChanged:Z

    if-eqz v2, :cond_1

    .line 1900
    invoke-virtual {p0}, Landroid/widget/MyListView;->layoutChildren()V

    .line 1903
    :cond_1
    const/4 v1, 0x0

    .line 1904
    .local v1, handled:Z
    invoke-virtual {p3}, Landroid/view/KeyEvent;->getAction()I

    move-result v0

    .line 1906
    .local v0, action:I
    if-eq v0, v3, :cond_3

    .line 1907
    iget v2, p0, Landroid/widget/MyListView;->mSelectedPosition:I

    if-gez v2, :cond_2

    .line 1908
    sparse-switch p1, :sswitch_data_0

    .line 1919
    :cond_2
    sparse-switch p1, :sswitch_data_1

    .line 1970
    :cond_3
    :goto_1
    if-nez v1, :cond_4

    .line 1971
    invoke-virtual {p0, p1, p2, p3}, Landroid/widget/MyListView;->sendToTextFilter(IILandroid/view/KeyEvent;)Z

    move-result v1

    .line 1974
    :cond_4
    if-eqz v1, :cond_a

    move v2, v3

    .line 1975
    goto :goto_0

    .line 1914
    :sswitch_0
    invoke-virtual {p0}, Landroid/widget/MyListView;->resurrectSelection()Z

    move-result v2

    if-eqz v2, :cond_2

    move v2, v3

    .line 1915
    goto :goto_0

    .line 1921
    :sswitch_1
    invoke-virtual {p3}, Landroid/view/KeyEvent;->isAltPressed()Z

    move-result v2

    if-nez v2, :cond_5

    .line 1922
    :goto_2
    if-lez p2, :cond_3

    .line 1923
    invoke-virtual {p0, v4}, Landroid/widget/MyListView;->arrowScroll(I)Z

    move-result v1

    .line 1924
    add-int/lit8 p2, p2, -0x1

    goto :goto_2

    .line 1927
    :cond_5
    invoke-virtual {p0, v4}, Landroid/widget/MyListView;->fullScroll(I)Z

    move-result v1

    .line 1929
    goto :goto_1

    .line 1932
    :sswitch_2
    invoke-virtual {p3}, Landroid/view/KeyEvent;->isAltPressed()Z

    move-result v2

    if-nez v2, :cond_6

    .line 1933
    :goto_3
    if-lez p2, :cond_3

    .line 1934
    invoke-virtual {p0, v5}, Landroid/widget/MyListView;->arrowScroll(I)Z

    move-result v1

    .line 1935
    add-int/lit8 p2, p2, -0x1

    goto :goto_3

    .line 1938
    :cond_6
    invoke-virtual {p0, v5}, Landroid/widget/MyListView;->fullScroll(I)Z

    move-result v1

    .line 1940
    goto :goto_1

    .line 1943
    :sswitch_3
    const/16 v2, 0x11

    invoke-direct {p0, v2}, Landroid/widget/MyListView;->handleHorizontalFocusWithinListItem(I)Z

    move-result v1

    .line 1944
    goto :goto_1

    .line 1946
    :sswitch_4
    const/16 v2, 0x42

    invoke-direct {p0, v2}, Landroid/widget/MyListView;->handleHorizontalFocusWithinListItem(I)Z

    move-result v1

    .line 1947
    goto :goto_1

    .line 1951
    :sswitch_5
    iget v2, p0, Landroid/widget/MyListView;->mItemCount:I

    if-lez v2, :cond_7

    invoke-virtual {p3}, Landroid/view/KeyEvent;->getRepeatCount()I

    move-result v2

    if-nez v2, :cond_7

    .line 1952
    invoke-virtual {p0}, Landroid/widget/MyListView;->keyPressed()V

    .line 1954
    :cond_7
    const/4 v1, 0x1

    .line 1955
    goto :goto_1

    .line 1958
    :sswitch_6
    iget-object v2, p0, Landroid/widget/MyListView;->mPopup:Landroid/widget/PopupWindow;

    if-eqz v2, :cond_8

    iget-object v2, p0, Landroid/widget/MyListView;->mPopup:Landroid/widget/PopupWindow;

    invoke-virtual {v2}, Landroid/widget/PopupWindow;->isShowing()Z

    move-result v2

    if-nez v2, :cond_3

    .line 1959
    :cond_8
    invoke-virtual {p3}, Landroid/view/KeyEvent;->isShiftPressed()Z

    move-result v2

    if-nez v2, :cond_9

    .line 1960
    invoke-virtual {p0, v5}, Landroid/widget/MyListView;->pageScroll(I)Z

    .line 1964
    :goto_4
    const/4 v1, 0x1

    goto :goto_1

    .line 1962
    :cond_9
    invoke-virtual {p0, v4}, Landroid/widget/MyListView;->pageScroll(I)Z

    goto :goto_4

    .line 1977
    :cond_a
    packed-switch v0, :pswitch_data_0

    move v2, v6

    .line 1988
    goto/16 :goto_0

    .line 1979
    :pswitch_0
    invoke-super {p0, p1, p3}, Landroid/widget/MyAbsListView;->onKeyDown(ILandroid/view/KeyEvent;)Z

    move-result v2

    goto/16 :goto_0

    .line 1982
    :pswitch_1
    invoke-super {p0, p1, p3}, Landroid/widget/MyAbsListView;->onKeyUp(ILandroid/view/KeyEvent;)Z

    move-result v2

    goto/16 :goto_0

    .line 1985
    :pswitch_2
    invoke-super {p0, p1, p2, p3}, Landroid/widget/MyAbsListView;->onKeyMultiple(IILandroid/view/KeyEvent;)Z

    move-result v2

    goto/16 :goto_0

    .line 1908
    :sswitch_data_0
    .sparse-switch
        0x13 -> :sswitch_0
        0x14 -> :sswitch_0
        0x17 -> :sswitch_0
        0x3e -> :sswitch_0
        0x42 -> :sswitch_0
    .end sparse-switch

    .line 1919
    :sswitch_data_1
    .sparse-switch
        0x13 -> :sswitch_1
        0x14 -> :sswitch_2
        0x15 -> :sswitch_3
        0x16 -> :sswitch_4
        0x17 -> :sswitch_5
        0x3e -> :sswitch_6
        0x42 -> :sswitch_5
    .end sparse-switch

    .line 1977
    :pswitch_data_0
    .packed-switch 0x0
        :pswitch_0
        :pswitch_1
        :pswitch_2
    .end packed-switch
.end method

.method private correctTooHigh(I)V
    .locals 10
    .parameter "childCount"

    .prologue
    const/4 v9, 0x1

    .line 1254
    iget v7, p0, Landroid/widget/MyListView;->mFirstPosition:I

    add-int/2addr v7, p1

    sub-int v6, v7, v9

    .line 1255
    .local v6, lastPosition:I
    iget v7, p0, Landroid/widget/MyListView;->mItemCount:I

    sub-int/2addr v7, v9

    if-ne v6, v7, :cond_2

    if-lez p1, :cond_2

    .line 1258
    sub-int v7, p1, v9

    invoke-virtual {p0, v7}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v5

    .line 1261
    .local v5, lastChild:Landroid/view/View;
    invoke-virtual {v5}, Landroid/view/View;->getBottom()I

    move-result v4

    .line 1264
    .local v4, lastBottom:I
    iget v7, p0, Landroid/widget/MyListView;->mBottom:I

    iget v8, p0, Landroid/widget/MyListView;->mTop:I

    sub-int/2addr v7, v8

    iget-object v8, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v8, v8, Landroid/graphics/Rect;->bottom:I

    sub-int v1, v7, v8

    .line 1268
    .local v1, end:I
    sub-int v0, v1, v4

    .line 1269
    .local v0, bottomOffset:I
    const/4 v7, 0x0

    invoke-virtual {p0, v7}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v2

    .line 1270
    .local v2, firstChild:Landroid/view/View;
    invoke-virtual {v2}, Landroid/view/View;->getTop()I

    move-result v3

    .line 1274
    .local v3, firstTop:I
    if-lez v0, :cond_2

    iget v7, p0, Landroid/widget/MyListView;->mFirstPosition:I

    if-gtz v7, :cond_0

    iget-object v7, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v7, v7, Landroid/graphics/Rect;->top:I

    if-ge v3, v7, :cond_2

    .line 1275
    :cond_0
    iget v7, p0, Landroid/widget/MyListView;->mFirstPosition:I

    if-nez v7, :cond_1

    .line 1277
    iget-object v7, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v7, v7, Landroid/graphics/Rect;->top:I

    sub-int/2addr v7, v3

    invoke-static {v0, v7}, Ljava/lang/Math;->min(II)I

    move-result v0

    .line 1280
    :cond_1
    invoke-virtual {p0, v0}, Landroid/widget/MyListView;->offsetChildrenTopAndBottom(I)V

    .line 1281
    iget v7, p0, Landroid/widget/MyListView;->mFirstPosition:I

    if-lez v7, :cond_2

    .line 1284
    iget v7, p0, Landroid/widget/MyListView;->mFirstPosition:I

    sub-int/2addr v7, v9

    invoke-virtual {v2}, Landroid/view/View;->getTop()I

    move-result v8

    iget v9, p0, Landroid/widget/MyListView;->mDividerHeight:I

    sub-int/2addr v8, v9

    invoke-direct {p0, v7, v8}, Landroid/widget/MyListView;->fillUp(II)Landroid/view/View;

    .line 1286
    invoke-direct {p0}, Landroid/widget/MyListView;->adjustViewsUpOrDown()V

    .line 1291
    .end local v0           #bottomOffset:I
    .end local v1           #end:I
    .end local v2           #firstChild:Landroid/view/View;
    .end local v3           #firstTop:I
    .end local v4           #lastBottom:I
    .end local v5           #lastChild:Landroid/view/View;
    :cond_2
    return-void
.end method

.method private correctTooLow(I)V
    .locals 11
    .parameter "childCount"

    .prologue
    const/4 v10, 0x1

    .line 1303
    iget v8, p0, Landroid/widget/MyListView;->mFirstPosition:I

    if-nez v8, :cond_2

    if-lez p1, :cond_2

    .line 1306
    const/4 v8, 0x0

    invoke-virtual {p0, v8}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v1

    .line 1309
    .local v1, firstChild:Landroid/view/View;
    invoke-virtual {v1}, Landroid/view/View;->getTop()I

    move-result v2

    .line 1312
    .local v2, firstTop:I
    iget-object v8, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v6, v8, Landroid/graphics/Rect;->top:I

    .line 1315
    .local v6, start:I
    iget v8, p0, Landroid/widget/MyListView;->mBottom:I

    iget v9, p0, Landroid/widget/MyListView;->mTop:I

    sub-int/2addr v8, v9

    iget-object v9, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v9, v9, Landroid/graphics/Rect;->bottom:I

    sub-int v0, v8, v9

    .line 1319
    .local v0, end:I
    sub-int v7, v2, v6

    .line 1320
    .local v7, topOffset:I
    sub-int v8, p1, v10

    invoke-virtual {p0, v8}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v4

    .line 1321
    .local v4, lastChild:Landroid/view/View;
    invoke-virtual {v4}, Landroid/view/View;->getBottom()I

    move-result v3

    .line 1322
    .local v3, lastBottom:I
    iget v8, p0, Landroid/widget/MyListView;->mFirstPosition:I

    add-int/2addr v8, p1

    sub-int v5, v8, v10

    .line 1326
    .local v5, lastPosition:I
    if-lez v7, :cond_2

    iget v8, p0, Landroid/widget/MyListView;->mItemCount:I

    sub-int/2addr v8, v10

    if-lt v5, v8, :cond_0

    if-le v3, v0, :cond_2

    .line 1327
    :cond_0
    iget v8, p0, Landroid/widget/MyListView;->mItemCount:I

    sub-int/2addr v8, v10

    if-ne v5, v8, :cond_1

    .line 1329
    sub-int v8, v3, v0

    invoke-static {v7, v8}, Ljava/lang/Math;->min(II)I

    move-result v7

    .line 1332
    :cond_1
    neg-int v8, v7

    invoke-virtual {p0, v8}, Landroid/widget/MyListView;->offsetChildrenTopAndBottom(I)V

    .line 1333
    iget v8, p0, Landroid/widget/MyListView;->mItemCount:I

    sub-int/2addr v8, v10

    if-ge v5, v8, :cond_2

    .line 1336
    add-int/lit8 v8, v5, 0x1

    invoke-virtual {v4}, Landroid/view/View;->getBottom()I

    move-result v9

    iget v10, p0, Landroid/widget/MyListView;->mDividerHeight:I

    add-int/2addr v9, v10

    invoke-direct {p0, v8, v9}, Landroid/widget/MyListView;->fillDown(II)Landroid/view/View;

    .line 1338
    invoke-direct {p0}, Landroid/widget/MyListView;->adjustViewsUpOrDown()V

    .line 1342
    .end local v0           #end:I
    .end local v1           #firstChild:Landroid/view/View;
    .end local v2           #firstTop:I
    .end local v3           #lastBottom:I
    .end local v4           #lastChild:Landroid/view/View;
    .end local v5           #lastPosition:I
    .end local v6           #start:I
    .end local v7           #topOffset:I
    :cond_2
    return-void
.end method

.method private distanceToView(Landroid/view/View;)I
    .locals 4
    .parameter "descendant"

    .prologue
    .line 2649
    const/4 v0, 0x0

    .line 2650
    .local v0, distance:I
    iget-object v2, p0, Landroid/widget/MyListView;->mTempRect:Landroid/graphics/Rect;

    invoke-virtual {p1, v2}, Landroid/view/View;->getDrawingRect(Landroid/graphics/Rect;)V

    .line 2651
    iget-object v2, p0, Landroid/widget/MyListView;->mTempRect:Landroid/graphics/Rect;

    invoke-virtual {p0, p1, v2}, Landroid/widget/MyListView;->offsetDescendantRectToMyCoords(Landroid/view/View;Landroid/graphics/Rect;)V

    .line 2652
    iget v2, p0, Landroid/widget/MyListView;->mBottom:I

    iget v3, p0, Landroid/widget/MyListView;->mTop:I

    sub-int/2addr v2, v3

    iget-object v3, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v3, v3, Landroid/graphics/Rect;->bottom:I

    sub-int v1, v2, v3

    .line 2653
    .local v1, listBottom:I
    iget-object v2, p0, Landroid/widget/MyListView;->mTempRect:Landroid/graphics/Rect;

    iget v2, v2, Landroid/graphics/Rect;->bottom:I

    iget-object v3, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v3, v3, Landroid/graphics/Rect;->top:I

    if-ge v2, v3, :cond_1

    .line 2654
    iget-object v2, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v2, v2, Landroid/graphics/Rect;->top:I

    iget-object v3, p0, Landroid/widget/MyListView;->mTempRect:Landroid/graphics/Rect;

    iget v3, v3, Landroid/graphics/Rect;->bottom:I

    sub-int v0, v2, v3

    .line 2658
    :cond_0
    :goto_0
    return v0

    .line 2655
    :cond_1
    iget-object v2, p0, Landroid/widget/MyListView;->mTempRect:Landroid/graphics/Rect;

    iget v2, v2, Landroid/graphics/Rect;->top:I

    if-le v2, v1, :cond_0

    .line 2656
    iget-object v2, p0, Landroid/widget/MyListView;->mTempRect:Landroid/graphics/Rect;

    iget v2, v2, Landroid/graphics/Rect;->top:I

    sub-int v0, v2, v1

    goto :goto_0
.end method

.method private fillAboveAndBelow(Landroid/view/View;I)V
    .locals 4
    .parameter "sel"
    .parameter "position"

    .prologue
    const/4 v3, 0x1

    .line 737
    iget v0, p0, Landroid/widget/MyListView;->mDividerHeight:I

    .line 738
    .local v0, dividerHeight:I
    iget-boolean v1, p0, Landroid/widget/MyListView;->mStackFromBottom:Z

    if-nez v1, :cond_0

    .line 739
    sub-int v1, p2, v3

    invoke-virtual {p1}, Landroid/view/View;->getTop()I

    move-result v2

    sub-int/2addr v2, v0

    invoke-direct {p0, v1, v2}, Landroid/widget/MyListView;->fillUp(II)Landroid/view/View;

    .line 740
    invoke-direct {p0}, Landroid/widget/MyListView;->adjustViewsUpOrDown()V

    .line 741
    add-int/lit8 v1, p2, 0x1

    invoke-virtual {p1}, Landroid/view/View;->getBottom()I

    move-result v2

    add-int/2addr v2, v0

    invoke-direct {p0, v1, v2}, Landroid/widget/MyListView;->fillDown(II)Landroid/view/View;

    .line 747
    :goto_0
    return-void

    .line 743
    :cond_0
    add-int/lit8 v1, p2, 0x1

    invoke-virtual {p1}, Landroid/view/View;->getBottom()I

    move-result v2

    add-int/2addr v2, v0

    invoke-direct {p0, v1, v2}, Landroid/widget/MyListView;->fillDown(II)Landroid/view/View;

    .line 744
    invoke-direct {p0}, Landroid/widget/MyListView;->adjustViewsUpOrDown()V

    .line 745
    sub-int v1, p2, v3

    invoke-virtual {p1}, Landroid/view/View;->getTop()I

    move-result v2

    sub-int/2addr v2, v0

    invoke-direct {p0, v1, v2}, Landroid/widget/MyListView;->fillUp(II)Landroid/view/View;

    goto :goto_0
.end method

.method private fillDown(II)Landroid/view/View;
    .locals 9
    .parameter "pos"
    .parameter "nextTop"

    .prologue
    const/4 v3, 0x1

    .line 626
    const/4 v8, 0x0

    .line 628
    .local v8, selectedView:Landroid/view/View;
    iget v0, p0, Landroid/widget/MyListView;->mBottom:I

    iget v1, p0, Landroid/widget/MyListView;->mTop:I

    sub-int/2addr v0, v1

    iget-object v1, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v1, v1, Landroid/graphics/Rect;->bottom:I

    sub-int v7, v0, v1

    .line 630
    .local v7, end:I
    :goto_0
    if-ge p2, v7, :cond_2

    iget v0, p0, Landroid/widget/MyListView;->mItemCount:I

    if-ge p1, v0, :cond_2

    .line 632
    iget v0, p0, Landroid/widget/MyListView;->mSelectedPosition:I

    if-ne p1, v0, :cond_1

    move v5, v3

    .line 633
    .local v5, selected:Z
    :goto_1
    iget-object v0, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v4, v0, Landroid/graphics/Rect;->left:I

    move-object v0, p0

    move v1, p1

    move v2, p2

    invoke-direct/range {v0 .. v5}, Landroid/widget/MyListView;->makeAndAddView(IIZIZ)Landroid/view/View;

    move-result-object v6

    .line 635
    .local v6, child:Landroid/view/View;
    invoke-virtual {v6}, Landroid/view/View;->getBottom()I

    move-result v0

    iget v1, p0, Landroid/widget/MyListView;->mDividerHeight:I

    add-int p2, v0, v1

    .line 636
    if-eqz v5, :cond_0

    .line 637
    move-object v8, v6

    .line 639
    :cond_0
    add-int/lit8 p1, p1, 0x1

    .line 640
    goto :goto_0

    .line 632
    .end local v5           #selected:Z
    .end local v6           #child:Landroid/view/View;
    :cond_1
    const/4 v0, 0x0

    move v5, v0

    goto :goto_1

    .line 642
    :cond_2
    return-object v8
.end method

.method private fillFromMiddle(II)Landroid/view/View;
    .locals 9
    .parameter "childrenTop"
    .parameter "childrenBottom"

    .prologue
    const/4 v3, 0x1

    .line 705
    sub-int v6, p2, p1

    .line 707
    .local v6, height:I
    invoke-virtual {p0}, Landroid/widget/MyListView;->reconcileSelectedPosition()I

    move-result v1

    .line 709
    .local v1, position:I
    iget-object v0, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v4, v0, Landroid/graphics/Rect;->left:I

    move-object v0, p0

    move v2, p1

    move v5, v3

    invoke-direct/range {v0 .. v5}, Landroid/widget/MyListView;->makeAndAddView(IIZIZ)Landroid/view/View;

    move-result-object v7

    .line 711
    .local v7, sel:Landroid/view/View;
    iput v1, p0, Landroid/widget/MyListView;->mFirstPosition:I

    .line 713
    invoke-virtual {v7}, Landroid/view/View;->getMeasuredHeight()I

    move-result v8

    .line 714
    .local v8, selHeight:I
    if-gt v8, v6, :cond_0

    .line 715
    sub-int v0, v6, v8

    div-int/lit8 v0, v0, 0x2

    invoke-virtual {v7, v0}, Landroid/view/View;->offsetTopAndBottom(I)V

    .line 718
    :cond_0
    invoke-direct {p0, v7, v1}, Landroid/widget/MyListView;->fillAboveAndBelow(Landroid/view/View;I)V

    .line 720
    iget-boolean v0, p0, Landroid/widget/MyListView;->mStackFromBottom:Z

    if-nez v0, :cond_1

    .line 721
    invoke-virtual {p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v0

    invoke-direct {p0, v0}, Landroid/widget/MyListView;->correctTooHigh(I)V

    .line 726
    :goto_0
    return-object v7

    .line 723
    :cond_1
    invoke-virtual {p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v0

    invoke-direct {p0, v0}, Landroid/widget/MyListView;->correctTooLow(I)V

    goto :goto_0
.end method

.method private fillFromSelection(III)Landroid/view/View;
    .locals 17
    .parameter "selectedTop"
    .parameter "childrenTop"
    .parameter "childrenBottom"

    .prologue
    .line 761
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->getVerticalFadingEdgeLength()I

    move-result v11

    .line 762
    .local v11, fadingEdgeLength:I
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mSelectedPosition:I

    move v5, v0

    .line 766
    .local v5, selectedPosition:I
    move-object/from16 v0, p0

    move/from16 v1, p2

    move v2, v11

    move v3, v5

    invoke-direct {v0, v1, v2, v3}, Landroid/widget/MyListView;->getTopSelectionPixel(III)I

    move-result v16

    .line 768
    .local v16, topSelectionPixel:I
    move-object/from16 v0, p0

    move/from16 v1, p3

    move v2, v11

    move v3, v5

    invoke-direct {v0, v1, v2, v3}, Landroid/widget/MyListView;->getBottomSelectionPixel(III)I

    move-result v10

    .line 771
    .local v10, bottomSelectionPixel:I
    const/4 v7, 0x1

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    move-object v4, v0

    iget v8, v4, Landroid/graphics/Rect;->left:I

    const/4 v9, 0x1

    move-object/from16 v4, p0

    move/from16 v6, p1

    invoke-direct/range {v4 .. v9}, Landroid/widget/MyListView;->makeAndAddView(IIZIZ)Landroid/view/View;

    move-result-object v13

    .line 775
    .local v13, sel:Landroid/view/View;
    invoke-virtual {v13}, Landroid/view/View;->getBottom()I

    move-result v4

    if-le v4, v10, :cond_1

    .line 778
    invoke-virtual {v13}, Landroid/view/View;->getTop()I

    move-result v4

    sub-int v14, v4, v16

    .line 782
    .local v14, spaceAbove:I
    invoke-virtual {v13}, Landroid/view/View;->getBottom()I

    move-result v4

    sub-int v15, v4, v10

    .line 783
    .local v15, spaceBelow:I
    invoke-static {v14, v15}, Ljava/lang/Math;->min(II)I

    move-result v12

    .line 786
    .local v12, offset:I
    neg-int v4, v12

    invoke-virtual {v13, v4}, Landroid/view/View;->offsetTopAndBottom(I)V

    .line 802
    .end local v12           #offset:I
    .end local v14           #spaceAbove:I
    .end local v15           #spaceBelow:I
    :cond_0
    :goto_0
    move-object/from16 v0, p0

    move-object v1, v13

    move v2, v5

    invoke-direct {v0, v1, v2}, Landroid/widget/MyListView;->fillAboveAndBelow(Landroid/view/View;I)V

    .line 804
    move-object/from16 v0, p0

    iget-boolean v0, v0, Landroid/widget/MyListView;->mStackFromBottom:Z

    move v4, v0

    if-nez v4, :cond_2

    .line 805
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v4

    move-object/from16 v0, p0

    move v1, v4

    invoke-direct {v0, v1}, Landroid/widget/MyListView;->correctTooHigh(I)V

    .line 810
    :goto_1
    return-object v13

    .line 787
    :cond_1
    invoke-virtual {v13}, Landroid/view/View;->getTop()I

    move-result v4

    move v0, v4

    move/from16 v1, v16

    if-ge v0, v1, :cond_0

    .line 790
    invoke-virtual {v13}, Landroid/view/View;->getTop()I

    move-result v4

    sub-int v14, v16, v4

    .line 794
    .restart local v14       #spaceAbove:I
    invoke-virtual {v13}, Landroid/view/View;->getBottom()I

    move-result v4

    sub-int v15, v10, v4

    .line 795
    .restart local v15       #spaceBelow:I
    invoke-static {v14, v15}, Ljava/lang/Math;->min(II)I

    move-result v12

    .line 798
    .restart local v12       #offset:I
    invoke-virtual {v13, v12}, Landroid/view/View;->offsetTopAndBottom(I)V

    goto :goto_0

    .line 807
    .end local v12           #offset:I
    .end local v14           #spaceAbove:I
    .end local v15           #spaceBelow:I
    :cond_2
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v4

    move-object/from16 v0, p0

    move v1, v4

    invoke-direct {v0, v1}, Landroid/widget/MyListView;->correctTooLow(I)V

    goto :goto_1
.end method

.method private fillFromTop(I)Landroid/view/View;
    .locals 3
    .parameter "nextTop"

    .prologue
    .line 685
    iget v0, p0, Landroid/widget/MyListView;->mFirstPosition:I

    iget v1, p0, Landroid/widget/MyListView;->mSelectedPosition:I

    invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I

    move-result v0

    iput v0, p0, Landroid/widget/MyListView;->mFirstPosition:I

    .line 686
    iget v0, p0, Landroid/widget/MyListView;->mFirstPosition:I

    iget v1, p0, Landroid/widget/MyListView;->mItemCount:I

    const/4 v2, 0x1

    sub-int/2addr v1, v2

    invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I

    move-result v0

    iput v0, p0, Landroid/widget/MyListView;->mFirstPosition:I

    .line 687
    iget v0, p0, Landroid/widget/MyListView;->mFirstPosition:I

    if-gez v0, :cond_0

    .line 688
    const/4 v0, 0x0

    iput v0, p0, Landroid/widget/MyListView;->mFirstPosition:I

    .line 690
    :cond_0
    iget v0, p0, Landroid/widget/MyListView;->mFirstPosition:I

    invoke-direct {p0, v0, p1}, Landroid/widget/MyListView;->fillDown(II)Landroid/view/View;

    move-result-object v0

    return-object v0
.end method

.method private fillSpecific(II)Landroid/view/View;
    .locals 11
    .parameter "position"
    .parameter "top"

    .prologue
    const/4 v3, 0x1

    .line 1206
    iget v0, p0, Landroid/widget/MyListView;->mSelectedPosition:I

    if-ne p1, v0, :cond_1

    move v5, v3

    .line 1207
    .local v5, tempIsSelected:Z
    :goto_0
    iget-object v0, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v4, v0, Landroid/graphics/Rect;->left:I

    move-object v0, p0

    move v1, p1

    move v2, p2

    invoke-direct/range {v0 .. v5}, Landroid/widget/MyListView;->makeAndAddView(IIZIZ)Landroid/view/View;

    move-result-object v10

    .line 1209
    .local v10, temp:Landroid/view/View;
    iput p1, p0, Landroid/widget/MyListView;->mFirstPosition:I

    .line 1214
    iget v9, p0, Landroid/widget/MyListView;->mDividerHeight:I

    .line 1215
    .local v9, dividerHeight:I
    iget-boolean v0, p0, Landroid/widget/MyListView;->mStackFromBottom:Z

    if-nez v0, :cond_2

    .line 1216
    sub-int v0, p1, v3

    invoke-virtual {v10}, Landroid/view/View;->getTop()I

    move-result v1

    sub-int/2addr v1, v9

    invoke-direct {p0, v0, v1}, Landroid/widget/MyListView;->fillUp(II)Landroid/view/View;

    move-result-object v6

    .line 1218
    .local v6, above:Landroid/view/View;
    invoke-direct {p0}, Landroid/widget/MyListView;->adjustViewsUpOrDown()V

    .line 1219
    add-int/lit8 v0, p1, 0x1

    invoke-virtual {v10}, Landroid/view/View;->getBottom()I

    move-result v1

    add-int/2addr v1, v9

    invoke-direct {p0, v0, v1}, Landroid/widget/MyListView;->fillDown(II)Landroid/view/View;

    move-result-object v7

    .line 1220
    .local v7, below:Landroid/view/View;
    invoke-virtual {p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v8

    .line 1221
    .local v8, childCount:I
    if-lez v8, :cond_0

    .line 1222
    invoke-direct {p0, v8}, Landroid/widget/MyListView;->correctTooHigh(I)V

    .line 1235
    :cond_0
    :goto_1
    if-eqz v5, :cond_3

    move-object v0, v10

    .line 1240
    :goto_2
    return-object v0

    .line 1206
    .end local v5           #tempIsSelected:Z
    .end local v6           #above:Landroid/view/View;
    .end local v7           #below:Landroid/view/View;
    .end local v8           #childCount:I
    .end local v9           #dividerHeight:I
    .end local v10           #temp:Landroid/view/View;
    :cond_1
    const/4 v0, 0x0

    move v5, v0

    goto :goto_0

    .line 1225
    .restart local v5       #tempIsSelected:Z
    .restart local v9       #dividerHeight:I
    .restart local v10       #temp:Landroid/view/View;
    :cond_2
    add-int/lit8 v0, p1, 0x1

    invoke-virtual {v10}, Landroid/view/View;->getBottom()I

    move-result v1

    add-int/2addr v1, v9

    invoke-direct {p0, v0, v1}, Landroid/widget/MyListView;->fillDown(II)Landroid/view/View;

    move-result-object v7

    .line 1227
    .restart local v7       #below:Landroid/view/View;
    invoke-direct {p0}, Landroid/widget/MyListView;->adjustViewsUpOrDown()V

    .line 1228
    sub-int v0, p1, v3

    invoke-virtual {v10}, Landroid/view/View;->getTop()I

    move-result v1

    sub-int/2addr v1, v9

    invoke-direct {p0, v0, v1}, Landroid/widget/MyListView;->fillUp(II)Landroid/view/View;

    move-result-object v6

    .line 1229
    .restart local v6       #above:Landroid/view/View;
    invoke-virtual {p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v8

    .line 1230
    .restart local v8       #childCount:I
    if-lez v8, :cond_0

    .line 1231
    invoke-direct {p0, v8}, Landroid/widget/MyListView;->correctTooLow(I)V

    goto :goto_1

    .line 1237
    :cond_3
    if-eqz v6, :cond_4

    move-object v0, v6

    .line 1238
    goto :goto_2

    :cond_4
    move-object v0, v7

    .line 1240
    goto :goto_2
.end method

.method private fillUp(II)Landroid/view/View;
    .locals 9
    .parameter "pos"
    .parameter "nextBottom"

    .prologue
    const/4 v3, 0x0

    .line 656
    const/4 v8, 0x0

    .line 658
    .local v8, selectedView:Landroid/view/View;
    iget-object v0, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v7, v0, Landroid/graphics/Rect;->top:I

    .line 660
    .local v7, end:I
    :goto_0
    if-le p2, v7, :cond_2

    if-ltz p1, :cond_2

    .line 662
    iget v0, p0, Landroid/widget/MyListView;->mSelectedPosition:I

    if-ne p1, v0, :cond_1

    const/4 v0, 0x1

    move v5, v0

    .line 663
    .local v5, selected:Z
    :goto_1
    iget-object v0, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v4, v0, Landroid/graphics/Rect;->left:I

    move-object v0, p0

    move v1, p1

    move v2, p2

    invoke-direct/range {v0 .. v5}, Landroid/widget/MyListView;->makeAndAddView(IIZIZ)Landroid/view/View;

    move-result-object v6

    .line 664
    .local v6, child:Landroid/view/View;
    invoke-virtual {v6}, Landroid/view/View;->getTop()I

    move-result v0

    iget v1, p0, Landroid/widget/MyListView;->mDividerHeight:I

    sub-int p2, v0, v1

    .line 665
    if-eqz v5, :cond_0

    .line 666
    move-object v8, v6

    .line 668
    :cond_0
    add-int/lit8 p1, p1, -0x1

    .line 669
    goto :goto_0

    .end local v5           #selected:Z
    .end local v6           #child:Landroid/view/View;
    :cond_1
    move v5, v3

    .line 662
    goto :goto_1

    .line 671
    :cond_2
    add-int/lit8 v0, p1, 0x1

    iput v0, p0, Landroid/widget/MyListView;->mFirstPosition:I

    .line 673
    return-object v8
.end method

.method private getArrowScrollPreviewLength()I
    .locals 2

    .prologue
    .line 2345
    const/4 v0, 0x2

    invoke-virtual {p0}, Landroid/widget/MyListView;->getVerticalFadingEdgeLength()I

    move-result v1

    invoke-static {v0, v1}, Ljava/lang/Math;->max(II)I

    move-result v0

    return v0
.end method

.method private getBottomSelectionPixel(III)I
    .locals 3
    .parameter "childrenBottom"
    .parameter "fadingEdgeLength"
    .parameter "selectedPosition"

    .prologue
    .line 823
    move v0, p1

    .line 824
    .local v0, bottomSelectionPixel:I
    iget v1, p0, Landroid/widget/MyListView;->mItemCount:I

    const/4 v2, 0x1

    sub-int/2addr v1, v2

    if-eq p3, v1, :cond_0

    .line 825
    sub-int/2addr v0, p2

    .line 827
    :cond_0
    return v0
.end method

.method private getTopSelectionPixel(III)I
    .locals 1
    .parameter "childrenTop"
    .parameter "fadingEdgeLength"
    .parameter "selectedPosition"

    .prologue
    .line 840
    move v0, p1

    .line 841
    .local v0, topSelectionPixel:I
    if-lez p3, :cond_0

    .line 842
    add-int/2addr v0, p2

    .line 844
    :cond_0
    return v0
.end method

.method private handleHorizontalFocusWithinListItem(I)Z
    .locals 7
    .parameter "direction"

    .prologue
    .line 2082
    const/16 v5, 0x11

    if-eq p1, v5, :cond_0

    const/16 v5, 0x42

    if-eq p1, v5, :cond_0

    .line 2083
    new-instance v5, Ljava/lang/IllegalArgumentException;

    const-string v6, "direction must be one of {View.FOCUS_LEFT, View.FOCUS_RIGHT}"

    invoke-direct {v5, v6}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    throw v5

    .line 2086
    :cond_0
    invoke-virtual {p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v3

    .line 2087
    .local v3, numChildren:I
    iget-boolean v5, p0, Landroid/widget/MyListView;->mItemsCanFocus:Z

    if-eqz v5, :cond_2

    if-lez v3, :cond_2

    iget v5, p0, Landroid/widget/MyListView;->mSelectedPosition:I

    const/4 v6, -0x1

    if-eq v5, v6, :cond_2

    .line 2088
    invoke-virtual {p0}, Landroid/widget/MyListView;->getSelectedView()Landroid/view/View;

    move-result-object v4

    .line 2089
    .local v4, selectedView:Landroid/view/View;
    invoke-virtual {v4}, Landroid/view/View;->hasFocus()Z

    move-result v5

    if-eqz v5, :cond_2

    instance-of v5, v4, Landroid/view/ViewGroup;

    if-eqz v5, :cond_2

    .line 2090
    invoke-virtual {v4}, Landroid/view/View;->findFocus()Landroid/view/View;

    move-result-object v0

    .line 2091
    .local v0, currentFocus:Landroid/view/View;
    invoke-static {}, Landroid/view/FocusFinder;->getInstance()Landroid/view/FocusFinder;

    move-result-object v5

    check-cast v4, Landroid/view/ViewGroup;

    .end local v4           #selectedView:Landroid/view/View;
    invoke-virtual {v5, v4, v0, p1}, Landroid/view/FocusFinder;->findNextFocus(Landroid/view/ViewGroup;Landroid/view/View;I)Landroid/view/View;

    move-result-object v2

    .line 2095
    .local v2, nextFocus:Landroid/view/View;
    if-eqz v2, :cond_1

    .line 2097
    iget-object v5, p0, Landroid/widget/MyListView;->mTempRect:Landroid/graphics/Rect;

    invoke-virtual {v0, v5}, Landroid/view/View;->getFocusedRect(Landroid/graphics/Rect;)V

    .line 2098
    iget-object v5, p0, Landroid/widget/MyListView;->mTempRect:Landroid/graphics/Rect;

    invoke-virtual {p0, v0, v5}, Landroid/widget/MyListView;->offsetDescendantRectToMyCoords(Landroid/view/View;Landroid/graphics/Rect;)V

    .line 2099
    iget-object v5, p0, Landroid/widget/MyListView;->mTempRect:Landroid/graphics/Rect;

    invoke-virtual {p0, v2, v5}, Landroid/widget/MyListView;->offsetRectIntoDescendantCoords(Landroid/view/View;Landroid/graphics/Rect;)V

    .line 2100
    iget-object v5, p0, Landroid/widget/MyListView;->mTempRect:Landroid/graphics/Rect;

    invoke-virtual {v2, p1, v5}, Landroid/view/View;->requestFocus(ILandroid/graphics/Rect;)Z

    move-result v5

    if-eqz v5, :cond_1

    .line 2101
    const/4 v5, 0x1

    .line 2118
    .end local v0           #currentFocus:Landroid/view/View;
    .end local v2           #nextFocus:Landroid/view/View;
    :goto_0
    return v5

    .line 2108
    .restart local v0       #currentFocus:Landroid/view/View;
    .restart local v2       #nextFocus:Landroid/view/View;
    :cond_1
    invoke-static {}, Landroid/view/FocusFinder;->getInstance()Landroid/view/FocusFinder;

    move-result-object v6

    invoke-virtual {p0}, Landroid/widget/MyListView;->getRootView()Landroid/view/View;

    move-result-object v5

    check-cast v5, Landroid/view/ViewGroup;

    invoke-virtual {v6, v5, v0, p1}, Landroid/view/FocusFinder;->findNextFocus(Landroid/view/ViewGroup;Landroid/view/View;I)Landroid/view/View;

    move-result-object v1

    .line 2113
    .local v1, globalNextFocus:Landroid/view/View;
    if-eqz v1, :cond_2

    .line 2114
    invoke-direct {p0, v1, p0}, Landroid/widget/MyListView;->isViewAncestorOf(Landroid/view/View;Landroid/view/View;)Z

    move-result v5

    goto :goto_0

    .line 2118
    .end local v0           #currentFocus:Landroid/view/View;
    .end local v1           #globalNextFocus:Landroid/view/View;
    .end local v2           #nextFocus:Landroid/view/View;
    :cond_2
    const/4 v5, 0x0

    goto :goto_0
.end method

.method private handleNewSelectionChange(Landroid/view/View;IIZ)V
    .locals 10
    .parameter "selectedView"
    .parameter "direction"
    .parameter "newSelectedPosition"
    .parameter "newFocusAssigned"

    .prologue
    .line 2237
    const/4 v8, -0x1

    if-ne p3, v8, :cond_0

    .line 2238
    new-instance v8, Ljava/lang/IllegalArgumentException;

    const-string v9, "newSelectedPosition needs to be valid"

    invoke-direct {v8, v9}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    throw v8

    .line 2248
    :cond_0
    const/4 v5, 0x0

    .line 2249
    .local v5, topSelected:Z
    iget v8, p0, Landroid/widget/MyListView;->mSelectedPosition:I

    iget v9, p0, Landroid/widget/MyListView;->mFirstPosition:I

    sub-int v4, v8, v9

    .line 2250
    .local v4, selectedIndex:I
    iget v8, p0, Landroid/widget/MyListView;->mFirstPosition:I

    sub-int v2, p3, v8

    .line 2251
    .local v2, nextSelectedIndex:I
    const/16 v8, 0x21

    if-ne p2, v8, :cond_3

    .line 2252
    move v7, v2

    .line 2253
    .local v7, topViewIndex:I
    move v1, v4

    .line 2254
    .local v1, bottomViewIndex:I
    invoke-virtual {p0, v7}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v6

    .line 2255
    .local v6, topView:Landroid/view/View;
    move-object v0, p1

    .line 2256
    .local v0, bottomView:Landroid/view/View;
    const/4 v5, 0x1

    .line 2264
    :goto_0
    invoke-virtual {p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v3

    .line 2267
    .local v3, numChildren:I
    if-eqz v6, :cond_1

    .line 2268
    if-nez p4, :cond_4

    if-eqz v5, :cond_4

    const/4 v8, 0x1

    :goto_1
    invoke-virtual {v6, v8}, Landroid/view/View;->setSelected(Z)V

    .line 2269
    invoke-direct {p0, v6, v7, v3}, Landroid/widget/MyListView;->measureAndAdjustDown(Landroid/view/View;II)V

    .line 2273
    :cond_1
    if-eqz v0, :cond_2

    .line 2274
    if-nez p4, :cond_5

    if-nez v5, :cond_5

    const/4 v8, 0x1

    :goto_2
    invoke-virtual {v0, v8}, Landroid/view/View;->setSelected(Z)V

    .line 2275
    invoke-direct {p0, v0, v1, v3}, Landroid/widget/MyListView;->measureAndAdjustDown(Landroid/view/View;II)V

    .line 2277
    :cond_2
    return-void

    .line 2258
    .end local v0           #bottomView:Landroid/view/View;
    .end local v1           #bottomViewIndex:I
    .end local v3           #numChildren:I
    .end local v6           #topView:Landroid/view/View;
    .end local v7           #topViewIndex:I
    :cond_3
    move v7, v4

    .line 2259
    .restart local v7       #topViewIndex:I
    move v1, v2

    .line 2260
    .restart local v1       #bottomViewIndex:I
    move-object v6, p1

    .line 2261
    .restart local v6       #topView:Landroid/view/View;
    invoke-virtual {p0, v1}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v0

    .restart local v0       #bottomView:Landroid/view/View;
    goto :goto_0

    .line 2268
    .restart local v3       #numChildren:I
    :cond_4
    const/4 v8, 0x0

    goto :goto_1

    .line 2274
    :cond_5
    const/4 v8, 0x0

    goto :goto_2
.end method

.method private isDirectChildHeaderOrFooter(Landroid/view/View;)Z
    .locals 7
    .parameter "child"

    .prologue
    const/4 v6, 0x1

    .line 1595
    iget-object v1, p0, Landroid/widget/MyListView;->mHeaderViewInfos:Ljava/util/ArrayList;

    .line 1596
    .local v1, headers:Ljava/util/ArrayList;,"Ljava/util/ArrayList<Landroid/widget/MyListView$FixedViewInfo;>;"
    invoke-virtual {v1}, Ljava/util/ArrayList;->size()I

    move-result v4

    .line 1597
    .local v4, numHeaders:I
    const/4 v2, 0x0

    .local v2, i:I
    :goto_0
    if-ge v2, v4, :cond_1

    .line 1598
    invoke-virtual {v1, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;

    move-result-object v5

    check-cast v5, Landroid/widget/MyListView$FixedViewInfo;

    iget-object v5, v5, Landroid/widget/MyListView$FixedViewInfo;->view:Landroid/view/View;

    if-ne p1, v5, :cond_0

    move v5, v6

    .line 1609
    .end local p0
    :goto_1
    return v5

    .line 1597
    .restart local p0
    :cond_0
    add-int/lit8 v2, v2, 0x1

    goto :goto_0

    .line 1602
    :cond_1
    iget-object v0, p0, Landroid/widget/MyListView;->mFooterViewInfos:Ljava/util/ArrayList;

    .line 1603
    .local v0, footers:Ljava/util/ArrayList;,"Ljava/util/ArrayList<Landroid/widget/MyListView$FixedViewInfo;>;"
    invoke-virtual {v0}, Ljava/util/ArrayList;->size()I

    move-result v3

    .line 1604
    .local v3, numFooters:I
    const/4 v2, 0x0

    .end local p0
    :goto_2
    if-ge v2, v3, :cond_3

    .line 1605
    invoke-virtual {v0, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;

    move-result-object p0

    check-cast p0, Landroid/widget/MyListView$FixedViewInfo;

    iget-object v5, p0, Landroid/widget/MyListView$FixedViewInfo;->view:Landroid/view/View;

    if-ne p1, v5, :cond_2

    move v5, v6

    .line 1606
    goto :goto_1

    .line 1604
    :cond_2
    add-int/lit8 v2, v2, 0x1

    goto :goto_2

    .line 1609
    :cond_3
    const/4 v5, 0x0

    goto :goto_1
.end method

.method private isViewAncestorOf(Landroid/view/View;Landroid/view/View;)Z
    .locals 3
    .parameter "child"
    .parameter "parent"

    .prologue
    const/4 v2, 0x1

    .line 2602
    if-ne p1, p2, :cond_0

    move v1, v2

    .line 2607
    :goto_0
    return v1

    .line 2606
    :cond_0
    invoke-virtual {p1}, Landroid/view/View;->getParent()Landroid/view/ViewParent;

    move-result-object v0

    .line 2607
    .local v0, theParent:Landroid/view/ViewParent;
    instance-of v1, v0, Landroid/view/ViewGroup;

    if-eqz v1, :cond_1

    check-cast v0, Landroid/view/View;

    .end local v0           #theParent:Landroid/view/ViewParent;
    invoke-direct {p0, v0, p2}, Landroid/widget/MyListView;->isViewAncestorOf(Landroid/view/View;Landroid/view/View;)Z

    move-result v1

    if-eqz v1, :cond_1

    move v1, v2

    goto :goto_0

    :cond_1
    const/4 v1, 0x0

    goto :goto_0
.end method

.method private lookForSelectablePositionOnScreen(I)I
    .locals 9
    .parameter "direction"

    .prologue
    const/4 v8, 0x1

    const/4 v7, -0x1

    .line 2465
    iget v1, p0, Landroid/widget/MyListView;->mFirstPosition:I

    .line 2466
    .local v1, firstPosition:I
    const/16 v6, 0x82

    if-ne p1, v6, :cond_4

    .line 2467
    iget v6, p0, Landroid/widget/MyListView;->mSelectedPosition:I

    if-eq v6, v7, :cond_0

    iget v6, p0, Landroid/widget/MyListView;->mSelectedPosition:I

    add-int/lit8 v6, v6, 0x1

    move v5, v6

    .line 2470
    .local v5, startPos:I
    :goto_0
    iget-object v6, p0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    invoke-interface {v6}, Landroid/widget/ListAdapter;->getCount()I

    move-result v6

    if-lt v5, v6, :cond_1

    move v6, v7

    .line 2505
    :goto_1
    return v6

    .end local v5           #startPos:I
    :cond_0
    move v5, v1

    .line 2467
    goto :goto_0

    .line 2473
    .restart local v5       #startPos:I
    :cond_1
    if-ge v5, v1, :cond_2

    .line 2474
    move v5, v1

    .line 2477
    :cond_2
    invoke-virtual {p0}, Landroid/widget/MyListView;->getLastVisiblePosition()I

    move-result v3

    .line 2478
    .local v3, lastVisiblePos:I
    invoke-virtual {p0}, Landroid/widget/MyListView;->getAdapter()Landroid/widget/ListAdapter;

    move-result-object v0

    .line 2479
    .local v0, adapter:Landroid/widget/ListAdapter;
    move v4, v5

    .local v4, pos:I
    :goto_2
    if-gt v4, v3, :cond_9

    .line 2480
    invoke-interface {v0, v4}, Landroid/widget/ListAdapter;->isEnabled(I)Z

    move-result v6

    if-eqz v6, :cond_3

    sub-int v6, v4, v1

    invoke-virtual {p0, v6}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v6

    invoke-virtual {v6}, Landroid/view/View;->getVisibility()I

    move-result v6

    if-nez v6, :cond_3

    move v6, v4

    .line 2482
    goto :goto_1

    .line 2479
    :cond_3
    add-int/lit8 v4, v4, 0x1

    goto :goto_2

    .line 2486
    .end local v0           #adapter:Landroid/widget/ListAdapter;
    .end local v3           #lastVisiblePos:I
    .end local v4           #pos:I
    .end local v5           #startPos:I
    :cond_4
    invoke-virtual {p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v6

    add-int/2addr v6, v1

    sub-int v2, v6, v8

    .line 2487
    .local v2, last:I
    iget v6, p0, Landroid/widget/MyListView;->mSelectedPosition:I

    if-eq v6, v7, :cond_5

    iget v6, p0, Landroid/widget/MyListView;->mSelectedPosition:I

    sub-int/2addr v6, v8

    move v5, v6

    .line 2490
    .restart local v5       #startPos:I
    :goto_3
    if-gez v5, :cond_6

    move v6, v7

    .line 2491
    goto :goto_1

    .line 2487
    .end local v5           #startPos:I
    :cond_5
    invoke-virtual {p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v6

    add-int/2addr v6, v1

    sub-int/2addr v6, v8

    move v5, v6

    goto :goto_3

    .line 2493
    .restart local v5       #startPos:I
    :cond_6
    if-le v5, v2, :cond_7

    .line 2494
    move v5, v2

    .line 2497
    :cond_7
    invoke-virtual {p0}, Landroid/widget/MyListView;->getAdapter()Landroid/widget/ListAdapter;

    move-result-object v0

    .line 2498
    .restart local v0       #adapter:Landroid/widget/ListAdapter;
    move v4, v5

    .restart local v4       #pos:I
    :goto_4
    if-lt v4, v1, :cond_9

    .line 2499
    invoke-interface {v0, v4}, Landroid/widget/ListAdapter;->isEnabled(I)Z

    move-result v6

    if-eqz v6, :cond_8

    sub-int v6, v4, v1

    invoke-virtual {p0, v6}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v6

    invoke-virtual {v6}, Landroid/view/View;->getVisibility()I

    move-result v6

    if-nez v6, :cond_8

    move v6, v4

    .line 2501
    goto :goto_1

    .line 2498
    :cond_8
    add-int/lit8 v4, v4, -0x1

    goto :goto_4

    .end local v2           #last:I
    :cond_9
    move v6, v7

    .line 2505
    goto :goto_1
.end method

.method private makeAndAddView(IIZIZ)Landroid/view/View;
    .locals 9
    .parameter "position"
    .parameter "y"
    .parameter "flow"
    .parameter "childrenLeft"
    .parameter "selected"

    .prologue
    .line 1630
    iget-boolean v0, p0, Landroid/widget/MyListView;->mDataChanged:Z

    if-nez v0, :cond_0

    .line 1632
    iget-object v0, p0, Landroid/widget/MyListView;->mRecycler:Landroid/widget/MyAbsListView$RecycleBin;

    invoke-virtual {v0, p1}, Landroid/widget/MyAbsListView$RecycleBin;->getActiveView(I)Landroid/view/View;

    move-result-object v1

    .line 1633
    .local v1, child:Landroid/view/View;
    if-eqz v1, :cond_0

    .line 1641
    const/4 v7, 0x1

    move-object v0, p0

    move v2, p1

    move v3, p2

    move v4, p3

    move v5, p4

    move v6, p5

    invoke-direct/range {v0 .. v7}, Landroid/widget/MyListView;->setupChild(Landroid/view/View;IIZIZZ)V

    move-object v8, v1

    .line 1653
    .end local v1           #child:Landroid/view/View;
    .local v8, child:Landroid/view/View;
    :goto_0
    return-object v8

    .line 1648
    .end local v8           #child:Landroid/view/View;
    :cond_0
    invoke-virtual {p0, p1}, Landroid/widget/MyListView;->obtainView(I)Landroid/view/View;

    move-result-object v1

    .line 1651
    .restart local v1       #child:Landroid/view/View;
    const/4 v7, 0x0

    move-object v0, p0

    move v2, p1

    move v3, p2

    move v4, p3

    move v5, p4

    move v6, p5

    invoke-direct/range {v0 .. v7}, Landroid/widget/MyListView;->setupChild(Landroid/view/View;IIZIZZ)V

    move-object v8, v1

    .line 1653
    .end local v1           #child:Landroid/view/View;
    .restart local v8       #child:Landroid/view/View;
    goto :goto_0
.end method

.method private measureAndAdjustDown(Landroid/view/View;II)V
    .locals 4
    .parameter "child"
    .parameter "childIndex"
    .parameter "numChildren"

    .prologue
    .line 2287
    invoke-virtual {p1}, Landroid/view/View;->getHeight()I

    move-result v2

    .line 2288
    .local v2, oldHeight:I
    invoke-direct {p0, p1}, Landroid/widget/MyListView;->measureItem(Landroid/view/View;)V

    .line 2289
    invoke-virtual {p1}, Landroid/view/View;->getMeasuredHeight()I

    move-result v3

    if-eq v3, v2, :cond_0

    .line 2291
    invoke-direct {p0, p1}, Landroid/widget/MyListView;->relayoutMeasuredItem(Landroid/view/View;)V

    .line 2294
    invoke-virtual {p1}, Landroid/view/View;->getMeasuredHeight()I

    move-result v3

    sub-int v0, v3, v2

    .line 2295
    .local v0, heightDelta:I
    add-int/lit8 v1, p2, 0x1

    .local v1, i:I
    :goto_0
    if-ge v1, p3, :cond_0

    .line 2296
    invoke-virtual {p0, v1}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v3

    invoke-virtual {v3, v0}, Landroid/view/View;->offsetTopAndBottom(I)V

    .line 2295
    add-int/lit8 v1, v1, 0x1

    goto :goto_0

    .line 2299
    .end local v0           #heightDelta:I
    .end local v1           #i:I
    :cond_0
    return-void
.end method

.method private measureItem(Landroid/view/View;)V
    .locals 8
    .parameter "child"

    .prologue
    const/4 v7, 0x0

    .line 2307
    invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;

    move-result-object v3

    .line 2308
    .local v3, p:Landroid/view/ViewGroup$LayoutParams;
    if-nez v3, :cond_0

    .line 2309
    new-instance v3, Landroid/view/ViewGroup$LayoutParams;

    .end local v3           #p:Landroid/view/ViewGroup$LayoutParams;
    const/4 v4, -0x1

    const/4 v5, -0x2

    invoke-direct {v3, v4, v5}, Landroid/view/ViewGroup$LayoutParams;-><init>(II)V

    .line 2314
    .restart local v3       #p:Landroid/view/ViewGroup$LayoutParams;
    :cond_0
    iget v4, p0, Landroid/widget/MyListView;->mWidthMeasureSpec:I

    iget-object v5, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v5, v5, Landroid/graphics/Rect;->left:I

    iget-object v6, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v6, v6, Landroid/graphics/Rect;->right:I

    add-int/2addr v5, v6

    iget v6, v3, Landroid/view/ViewGroup$LayoutParams;->width:I

    invoke-static {v4, v5, v6}, Landroid/view/ViewGroup;->getChildMeasureSpec(III)I

    move-result v1

    .line 2316
    .local v1, childWidthSpec:I
    iget v2, v3, Landroid/view/ViewGroup$LayoutParams;->height:I

    .line 2318
    .local v2, lpHeight:I
    if-lez v2, :cond_1

    .line 2319
    const/high16 v4, 0x4000

    invoke-static {v2, v4}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I

    move-result v0

    .line 2323
    .local v0, childHeightSpec:I
    :goto_0
    invoke-virtual {p1, v1, v0}, Landroid/view/View;->measure(II)V

    .line 2324
    return-void

    .line 2321
    .end local v0           #childHeightSpec:I
    :cond_1
    invoke-static {v7, v7}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I

    move-result v0

    .restart local v0       #childHeightSpec:I
    goto :goto_0
.end method

.method private measureScrapChild(Landroid/view/View;II)V
    .locals 7
    .parameter "child"
    .parameter "position"
    .parameter "widthMeasureSpec"

    .prologue
    const/4 v6, 0x0

    .line 1064
    invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;

    move-result-object v3

    check-cast v3, Landroid/widget/MyAbsListView$LayoutParams;

    .line 1065
    .local v3, p:Landroid/widget/MyAbsListView$LayoutParams;
    if-nez v3, :cond_0

    .line 1066
    new-instance v3, Landroid/widget/MyAbsListView$LayoutParams;

    .end local v3           #p:Landroid/widget/MyAbsListView$LayoutParams;
    const/4 v4, -0x1

    const/4 v5, -0x2

    invoke-direct {v3, v4, v5, v6}, Landroid/widget/MyAbsListView$LayoutParams;-><init>(III)V

    .line 1068
    .restart local v3       #p:Landroid/widget/MyAbsListView$LayoutParams;
    invoke-virtual {p1, v3}, Landroid/view/View;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V

    .line 1070
    :cond_0
    iget-object v4, p0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    invoke-interface {v4, p2}, Landroid/widget/ListAdapter;->getItemViewType(I)I

    move-result v4

    iput v4, v3, Landroid/widget/MyAbsListView$LayoutParams;->viewType:I

    .line 1072
    iget-object v4, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v4, v4, Landroid/graphics/Rect;->left:I

    iget-object v5, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v5, v5, Landroid/graphics/Rect;->right:I

    add-int/2addr v4, v5

    iget v5, v3, Landroid/widget/MyAbsListView$LayoutParams;->width:I

    invoke-static {p3, v4, v5}, Landroid/view/ViewGroup;->getChildMeasureSpec(III)I

    move-result v1

    .line 1074
    .local v1, childWidthSpec:I
    iget v2, v3, Landroid/widget/MyAbsListView$LayoutParams;->height:I

    .line 1076
    .local v2, lpHeight:I
    if-lez v2, :cond_1

    .line 1077
    const/high16 v4, 0x4000

    invoke-static {v2, v4}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I

    move-result v0

    .line 1081
    .local v0, childHeightSpec:I
    :goto_0
    invoke-virtual {p1, v1, v0}, Landroid/view/View;->measure(II)V

    .line 1082
    return-void

    .line 1079
    .end local v0           #childHeightSpec:I
    :cond_1
    invoke-static {v6, v6}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I

    move-result v0

    .restart local v0       #childHeightSpec:I
    goto :goto_0
.end method

.method private moveSelection(Landroid/view/View;Landroid/view/View;III)Landroid/view/View;
    .locals 21
    .parameter "oldSel"
    .parameter "newSel"
    .parameter "delta"
    .parameter "childrenTop"
    .parameter "childrenBottom"

    .prologue
    .line 867
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->getVerticalFadingEdgeLength()I

    move-result v12

    .line 868
    .local v12, fadingEdgeLength:I
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mSelectedPosition:I

    move/from16 v17, v0

    .line 872
    .local v17, selectedPosition:I
    move-object/from16 v0, p0

    move/from16 v1, p4

    move v2, v12

    move/from16 v3, v17

    invoke-direct {v0, v1, v2, v3}, Landroid/widget/MyListView;->getTopSelectionPixel(III)I

    move-result v20

    .line 874
    .local v20, topSelectionPixel:I
    move-object/from16 v0, p0

    move/from16 v1, p4

    move v2, v12

    move/from16 v3, v17

    invoke-direct {v0, v1, v2, v3}, Landroid/widget/MyListView;->getBottomSelectionPixel(III)I

    move-result v10

    .line 877
    .local v10, bottomSelectionPixel:I
    if-lez p3, :cond_2

    .line 899
    const/4 v4, 0x1

    sub-int v5, v17, v4

    invoke-virtual/range {p1 .. p1}, Landroid/view/View;->getTop()I

    move-result v6

    const/4 v7, 0x1

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    move-object v4, v0

    iget v8, v4, Landroid/graphics/Rect;->left:I

    const/4 v9, 0x0

    move-object/from16 v4, p0

    invoke-direct/range {v4 .. v9}, Landroid/widget/MyListView;->makeAndAddView(IIZIZ)Landroid/view/View;

    move-result-object p1

    .line 902
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mDividerHeight:I

    move v11, v0

    .line 905
    .local v11, dividerHeight:I
    invoke-virtual/range {p1 .. p1}, Landroid/view/View;->getBottom()I

    move-result v4

    add-int v6, v4, v11

    const/4 v7, 0x1

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    move-object v4, v0

    iget v8, v4, Landroid/graphics/Rect;->left:I

    const/4 v9, 0x1

    move-object/from16 v4, p0

    move/from16 v5, v17

    invoke-direct/range {v4 .. v9}, Landroid/widget/MyListView;->makeAndAddView(IIZIZ)Landroid/view/View;

    move-result-object v16

    .line 909
    .local v16, sel:Landroid/view/View;
    invoke-virtual/range {v16 .. v16}, Landroid/view/View;->getBottom()I

    move-result v4

    if-le v4, v10, :cond_0

    .line 912
    invoke-virtual/range {v16 .. v16}, Landroid/view/View;->getTop()I

    move-result v4

    sub-int v18, v4, v20

    .line 915
    .local v18, spaceAbove:I
    invoke-virtual/range {v16 .. v16}, Landroid/view/View;->getBottom()I

    move-result v4

    sub-int v19, v4, v10

    .line 918
    .local v19, spaceBelow:I
    sub-int v4, p5, p4

    div-int/lit8 v13, v4, 0x2

    .line 919
    .local v13, halfVerticalSpace:I
    invoke-static/range {v18 .. v19}, Ljava/lang/Math;->min(II)I

    move-result v15

    .line 920
    .local v15, offset:I
    invoke-static {v15, v13}, Ljava/lang/Math;->min(II)I

    move-result v15

    .line 923
    neg-int v4, v15

    move-object/from16 v0, p1

    move v1, v4

    invoke-virtual {v0, v1}, Landroid/view/View;->offsetTopAndBottom(I)V

    .line 925
    neg-int v4, v15

    move-object/from16 v0, v16

    move v1, v4

    invoke-virtual {v0, v1}, Landroid/view/View;->offsetTopAndBottom(I)V

    .line 929
    .end local v13           #halfVerticalSpace:I
    .end local v15           #offset:I
    .end local v18           #spaceAbove:I
    .end local v19           #spaceBelow:I
    :cond_0
    move-object/from16 v0, p0

    iget-boolean v0, v0, Landroid/widget/MyListView;->mStackFromBottom:Z

    move v4, v0

    if-nez v4, :cond_1

    .line 930
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mSelectedPosition:I

    move v4, v0

    const/4 v5, 0x2

    sub-int/2addr v4, v5

    invoke-virtual/range {v16 .. v16}, Landroid/view/View;->getTop()I

    move-result v5

    sub-int/2addr v5, v11

    move-object/from16 v0, p0

    move v1, v4

    move v2, v5

    invoke-direct {v0, v1, v2}, Landroid/widget/MyListView;->fillUp(II)Landroid/view/View;

    .line 931
    invoke-direct/range {p0 .. p0}, Landroid/widget/MyListView;->adjustViewsUpOrDown()V

    .line 932
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mSelectedPosition:I

    move v4, v0

    add-int/lit8 v4, v4, 0x1

    invoke-virtual/range {v16 .. v16}, Landroid/view/View;->getBottom()I

    move-result v5

    add-int/2addr v5, v11

    move-object/from16 v0, p0

    move v1, v4

    move v2, v5

    invoke-direct {v0, v1, v2}, Landroid/widget/MyListView;->fillDown(II)Landroid/view/View;

    .line 1013
    .end local v11           #dividerHeight:I
    :goto_0
    return-object v16

    .line 934
    .restart local v11       #dividerHeight:I
    :cond_1
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mSelectedPosition:I

    move v4, v0

    add-int/lit8 v4, v4, 0x1

    invoke-virtual/range {v16 .. v16}, Landroid/view/View;->getBottom()I

    move-result v5

    add-int/2addr v5, v11

    move-object/from16 v0, p0

    move v1, v4

    move v2, v5

    invoke-direct {v0, v1, v2}, Landroid/widget/MyListView;->fillDown(II)Landroid/view/View;

    .line 935
    invoke-direct/range {p0 .. p0}, Landroid/widget/MyListView;->adjustViewsUpOrDown()V

    .line 936
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mSelectedPosition:I

    move v4, v0

    const/4 v5, 0x2

    sub-int/2addr v4, v5

    invoke-virtual/range {v16 .. v16}, Landroid/view/View;->getTop()I

    move-result v5

    sub-int/2addr v5, v11

    move-object/from16 v0, p0

    move v1, v4

    move v2, v5

    invoke-direct {v0, v1, v2}, Landroid/widget/MyListView;->fillUp(II)Landroid/view/View;

    goto :goto_0

    .line 938
    .end local v11           #dividerHeight:I
    .end local v16           #sel:Landroid/view/View;
    :cond_2
    if-gez p3, :cond_5

    .line 959
    if-eqz p2, :cond_4

    .line 961
    invoke-virtual/range {p2 .. p2}, Landroid/view/View;->getTop()I

    move-result v6

    const/4 v7, 0x1

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    move-object v4, v0

    iget v8, v4, Landroid/graphics/Rect;->left:I

    const/4 v9, 0x1

    move-object/from16 v4, p0

    move/from16 v5, v17

    invoke-direct/range {v4 .. v9}, Landroid/widget/MyListView;->makeAndAddView(IIZIZ)Landroid/view/View;

    move-result-object v16

    .line 971
    .restart local v16       #sel:Landroid/view/View;
    :goto_1
    invoke-virtual/range {v16 .. v16}, Landroid/view/View;->getTop()I

    move-result v4

    move v0, v4

    move/from16 v1, v20

    if-ge v0, v1, :cond_3

    .line 973
    invoke-virtual/range {v16 .. v16}, Landroid/view/View;->getTop()I

    move-result v4

    sub-int v18, v20, v4

    .line 976
    .restart local v18       #spaceAbove:I
    invoke-virtual/range {v16 .. v16}, Landroid/view/View;->getBottom()I

    move-result v4

    sub-int v19, v10, v4

    .line 979
    .restart local v19       #spaceBelow:I
    sub-int v4, p5, p4

    div-int/lit8 v13, v4, 0x2

    .line 980
    .restart local v13       #halfVerticalSpace:I
    invoke-static/range {v18 .. v19}, Ljava/lang/Math;->min(II)I

    move-result v15

    .line 981
    .restart local v15       #offset:I
    invoke-static {v15, v13}, Ljava/lang/Math;->min(II)I

    move-result v15

    .line 984
    move-object/from16 v0, v16

    move v1, v15

    invoke-virtual {v0, v1}, Landroid/view/View;->offsetTopAndBottom(I)V

    .line 988
    .end local v13           #halfVerticalSpace:I
    .end local v15           #offset:I
    .end local v18           #spaceAbove:I
    .end local v19           #spaceBelow:I
    :cond_3
    move-object/from16 v0, p0

    move-object/from16 v1, v16

    move/from16 v2, v17

    invoke-direct {v0, v1, v2}, Landroid/widget/MyListView;->fillAboveAndBelow(Landroid/view/View;I)V

    goto :goto_0

    .line 966
    .end local v16           #sel:Landroid/view/View;
    :cond_4
    invoke-virtual/range {p1 .. p1}, Landroid/view/View;->getTop()I

    move-result v6

    const/4 v7, 0x0

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    move-object v4, v0

    iget v8, v4, Landroid/graphics/Rect;->left:I

    const/4 v9, 0x1

    move-object/from16 v4, p0

    move/from16 v5, v17

    invoke-direct/range {v4 .. v9}, Landroid/widget/MyListView;->makeAndAddView(IIZIZ)Landroid/view/View;

    move-result-object v16

    .restart local v16       #sel:Landroid/view/View;
    goto :goto_1

    .line 991
    .end local v16           #sel:Landroid/view/View;
    :cond_5
    invoke-virtual/range {p1 .. p1}, Landroid/view/View;->getTop()I

    move-result v6

    .line 996
    .local v6, oldTop:I
    const/4 v7, 0x1

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    move-object v4, v0

    iget v8, v4, Landroid/graphics/Rect;->left:I

    const/4 v9, 0x1

    move-object/from16 v4, p0

    move/from16 v5, v17

    invoke-direct/range {v4 .. v9}, Landroid/widget/MyListView;->makeAndAddView(IIZIZ)Landroid/view/View;

    move-result-object v16

    .line 999
    .restart local v16       #sel:Landroid/view/View;
    move v0, v6

    move/from16 v1, p4

    if-ge v0, v1, :cond_6

    .line 1002
    invoke-virtual/range {v16 .. v16}, Landroid/view/View;->getBottom()I

    move-result v14

    .line 1003
    .local v14, newBottom:I
    add-int/lit8 v4, p4, 0x14

    if-ge v14, v4, :cond_6

    .line 1005
    invoke-virtual/range {v16 .. v16}, Landroid/view/View;->getTop()I

    move-result v4

    sub-int v4, p4, v4

    move-object/from16 v0, v16

    move v1, v4

    invoke-virtual {v0, v1}, Landroid/view/View;->offsetTopAndBottom(I)V

    .line 1010
    .end local v14           #newBottom:I
    :cond_6
    move-object/from16 v0, p0

    move-object/from16 v1, v16

    move/from16 v2, v17

    invoke-direct {v0, v1, v2}, Landroid/widget/MyListView;->fillAboveAndBelow(Landroid/view/View;I)V

    goto/16 :goto_0
.end method

.method private positionOfNewFocus(Landroid/view/View;)I
    .locals 5
    .parameter "newFocus"

    .prologue
    .line 2587
    invoke-virtual {p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v2

    .line 2588
    .local v2, numChildren:I
    const/4 v1, 0x0

    .local v1, i:I
    :goto_0
    if-ge v1, v2, :cond_1

    .line 2589
    invoke-virtual {p0, v1}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v0

    .line 2590
    .local v0, child:Landroid/view/View;
    invoke-direct {p0, p1, v0}, Landroid/widget/MyListView;->isViewAncestorOf(Landroid/view/View;Landroid/view/View;)Z

    move-result v3

    if-eqz v3, :cond_0

    .line 2591
    iget v3, p0, Landroid/widget/MyListView;->mFirstPosition:I

    add-int/2addr v3, v1

    return v3

    .line 2588
    :cond_0
    add-int/lit8 v1, v1, 0x1

    goto :goto_0

    .line 2594
    .end local v0           #child:Landroid/view/View;
    :cond_1
    new-instance v3, Ljava/lang/IllegalArgumentException;

    const-string v4, "newFocus is not a child of any of the children of the list!"

    invoke-direct {v3, v4}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    throw v3
.end method

.method private relayoutMeasuredItem(Landroid/view/View;)V
    .locals 7
    .parameter "child"

    .prologue
    .line 2332
    invoke-virtual {p1}, Landroid/view/View;->getMeasuredWidth()I

    move-result v5

    .line 2333
    .local v5, w:I
    invoke-virtual {p1}, Landroid/view/View;->getMeasuredHeight()I

    move-result v4

    .line 2334
    .local v4, h:I
    iget-object v6, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v1, v6, Landroid/graphics/Rect;->left:I

    .line 2335
    .local v1, childLeft:I
    add-int v2, v1, v5

    .line 2336
    .local v2, childRight:I
    invoke-virtual {p1}, Landroid/view/View;->getTop()I

    move-result v3

    .line 2337
    .local v3, childTop:I
    add-int v0, v3, v4

    .line 2338
    .local v0, childBottom:I
    invoke-virtual {p1, v1, v3, v2, v0}, Landroid/view/View;->layout(IIII)V

    .line 2339
    return-void
.end method

.method private removeFixedViewInfo(Landroid/view/View;Ljava/util/ArrayList;)V
    .locals 4
    .parameter "v"
    .parameter
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Landroid/view/View;",
            "Ljava/util/ArrayList",
            "<",
            "Landroid/widget/MyListView$FixedViewInfo;",
            ">;)V"
        }
    .end annotation

    .prologue
    .line 303
    .local p2, where:Ljava/util/ArrayList;,"Ljava/util/ArrayList<Landroid/widget/MyListView$FixedViewInfo;>;"
    invoke-virtual {p2}, Ljava/util/ArrayList;->size()I

    move-result v2

    .line 304
    .local v2, len:I
    const/4 v0, 0x0

    .local v0, i:I
    :goto_0
    if-ge v0, v2, :cond_0

    .line 305
    invoke-virtual {p2, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Landroid/widget/MyListView$FixedViewInfo;

    .line 306
    .local v1, info:Landroid/widget/MyListView$FixedViewInfo;
    iget-object v3, v1, Landroid/widget/MyListView$FixedViewInfo;->view:Landroid/view/View;

    if-ne v3, p1, :cond_1

    .line 307
    invoke-virtual {p2, v0}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object;

    .line 311
    .end local v1           #info:Landroid/widget/MyListView$FixedViewInfo;
    :cond_0
    return-void

    .line 304
    .restart local v1       #info:Landroid/widget/MyListView$FixedViewInfo;
    :cond_1
    add-int/lit8 v0, v0, 0x1

    goto :goto_0
.end method

.method private scrollListItemsBy(I)V
    .locals 13
    .parameter "amount"

    .prologue
    const/4 v12, 0x0

    const/4 v11, 0x1

    .line 2669
    invoke-virtual {p0, p1}, Landroid/widget/MyListView;->offsetChildrenTopAndBottom(I)V

    .line 2671
    invoke-virtual {p0}, Landroid/widget/MyListView;->getHeight()I

    move-result v9

    iget-object v10, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v10, v10, Landroid/graphics/Rect;->bottom:I

    sub-int v5, v9, v10

    .line 2672
    .local v5, listBottom:I
    iget-object v9, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v6, v9, Landroid/graphics/Rect;->top:I

    .line 2673
    .local v6, listTop:I
    iget-object v8, p0, Landroid/widget/MyListView;->mRecycler:Landroid/widget/MyAbsListView$RecycleBin;

    .line 2675
    .local v8, recycleBin:Landroid/widget/MyAbsListView$RecycleBin;
    if-gez p1, :cond_3

    .line 2679
    invoke-virtual {p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v7

    .line 2680
    .local v7, numChildren:I
    sub-int v9, v7, v11

    invoke-virtual {p0, v9}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v1

    .line 2681
    .local v1, last:Landroid/view/View;
    :goto_0
    invoke-virtual {v1}, Landroid/view/View;->getBottom()I

    move-result v9

    if-ge v9, v5, :cond_0

    .line 2682
    iget v9, p0, Landroid/widget/MyListView;->mFirstPosition:I

    add-int/2addr v9, v7

    sub-int v3, v9, v11

    .line 2683
    .local v3, lastVisiblePosition:I
    iget v9, p0, Landroid/widget/MyListView;->mItemCount:I

    sub-int/2addr v9, v11

    if-ge v3, v9, :cond_0

    .line 2684
    invoke-direct {p0, v1, v3}, Landroid/widget/MyListView;->addViewBelow(Landroid/view/View;I)Landroid/view/View;

    move-result-object v1

    .line 2685
    add-int/lit8 v7, v7, 0x1

    .line 2689
    goto :goto_0

    .line 2694
    .end local v3           #lastVisiblePosition:I
    :cond_0
    invoke-virtual {v1}, Landroid/view/View;->getBottom()I

    move-result v9

    if-ge v9, v5, :cond_1

    .line 2695
    invoke-virtual {v1}, Landroid/view/View;->getBottom()I

    move-result v9

    sub-int v9, v5, v9

    invoke-virtual {p0, v9}, Landroid/widget/MyListView;->offsetChildrenTopAndBottom(I)V

    .line 2699
    :cond_1
    invoke-virtual {p0, v12}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v0

    .line 2700
    .local v0, first:Landroid/view/View;
    :goto_1
    invoke-virtual {v0}, Landroid/view/View;->getBottom()I

    move-result v9

    if-ge v9, v6, :cond_7

    .line 2701
    invoke-virtual {v0}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;

    move-result-object v4

    check-cast v4, Landroid/widget/MyAbsListView$LayoutParams;

    .line 2702
    .local v4, layoutParams:Landroid/widget/MyAbsListView$LayoutParams;
    iget v9, v4, Landroid/widget/MyAbsListView$LayoutParams;->viewType:I

    invoke-virtual {v8, v9}, Landroid/widget/MyAbsListView$RecycleBin;->shouldRecycleViewType(I)Z

    move-result v9

    if-eqz v9, :cond_2

    .line 2703
    invoke-virtual {p0, v0}, Landroid/widget/MyListView;->removeViewInLayout(Landroid/view/View;)V

    .line 2704
    invoke-virtual {v8, v0}, Landroid/widget/MyAbsListView$RecycleBin;->addScrapView(Landroid/view/View;)V

    .line 2708
    :goto_2
    invoke-virtual {p0, v12}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v0

    .line 2709
    iget v9, p0, Landroid/widget/MyListView;->mFirstPosition:I

    add-int/lit8 v9, v9, 0x1

    iput v9, p0, Landroid/widget/MyListView;->mFirstPosition:I

    goto :goto_1

    .line 2706
    :cond_2
    invoke-virtual {p0, v0}, Landroid/widget/MyListView;->detachViewFromParent(Landroid/view/View;)V

    goto :goto_2

    .line 2713
    .end local v0           #first:Landroid/view/View;
    .end local v1           #last:Landroid/view/View;
    .end local v4           #layoutParams:Landroid/widget/MyAbsListView$LayoutParams;
    .end local v7           #numChildren:I
    :cond_3
    invoke-virtual {p0, v12}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v0

    .line 2716
    .restart local v0       #first:Landroid/view/View;
    :goto_3
    invoke-virtual {v0}, Landroid/view/View;->getTop()I

    move-result v9

    if-le v9, v6, :cond_4

    iget v9, p0, Landroid/widget/MyListView;->mFirstPosition:I

    if-lez v9, :cond_4

    .line 2717
    iget v9, p0, Landroid/widget/MyListView;->mFirstPosition:I

    invoke-direct {p0, v0, v9}, Landroid/widget/MyListView;->addViewAbove(Landroid/view/View;I)Landroid/view/View;

    move-result-object v0

    .line 2718
    iget v9, p0, Landroid/widget/MyListView;->mFirstPosition:I

    sub-int/2addr v9, v11

    iput v9, p0, Landroid/widget/MyListView;->mFirstPosition:I

    goto :goto_3

    .line 2723
    :cond_4
    invoke-virtual {v0}, Landroid/view/View;->getTop()I

    move-result v9

    if-le v9, v6, :cond_5

    .line 2724
    invoke-virtual {v0}, Landroid/view/View;->getTop()I

    move-result v9

    sub-int v9, v6, v9

    invoke-virtual {p0, v9}, Landroid/widget/MyListView;->offsetChildrenTopAndBottom(I)V

    .line 2727
    :cond_5
    invoke-virtual {p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v9

    sub-int v2, v9, v11

    .line 2728
    .local v2, lastIndex:I
    invoke-virtual {p0, v2}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v1

    .line 2731
    .restart local v1       #last:Landroid/view/View;
    :goto_4
    invoke-virtual {v1}, Landroid/view/View;->getTop()I

    move-result v9

    if-le v9, v5, :cond_7

    .line 2732
    invoke-virtual {v1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;

    move-result-object v4

    check-cast v4, Landroid/widget/MyAbsListView$LayoutParams;

    .line 2733
    .restart local v4       #layoutParams:Landroid/widget/MyAbsListView$LayoutParams;
    iget v9, v4, Landroid/widget/MyAbsListView$LayoutParams;->viewType:I

    invoke-virtual {v8, v9}, Landroid/widget/MyAbsListView$RecycleBin;->shouldRecycleViewType(I)Z

    move-result v9

    if-eqz v9, :cond_6

    .line 2734
    invoke-virtual {p0, v1}, Landroid/widget/MyListView;->removeViewInLayout(Landroid/view/View;)V

    .line 2735
    invoke-virtual {v8, v1}, Landroid/widget/MyAbsListView$RecycleBin;->addScrapView(Landroid/view/View;)V

    .line 2739
    :goto_5
    add-int/lit8 v2, v2, -0x1

    invoke-virtual {p0, v2}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v1

    .line 2740
    goto :goto_4

    .line 2737
    :cond_6
    invoke-virtual {p0, v1}, Landroid/widget/MyListView;->detachViewFromParent(Landroid/view/View;)V

    goto :goto_5

    .line 2742
    .end local v2           #lastIndex:I
    .end local v4           #layoutParams:Landroid/widget/MyAbsListView$LayoutParams;
    :cond_7
    return-void
.end method

.method private setupChild(Landroid/view/View;IIZIZZ)V
    .locals 20
    .parameter "child"
    .parameter "position"
    .parameter "y"
    .parameter "flowDown"
    .parameter "childrenLeft"
    .parameter "selected"
    .parameter "recycled"

    .prologue
    .line 1672
    if-eqz p6, :cond_6

    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->shouldShowSelector()Z

    move-result v17

    if-eqz v17, :cond_6

    const/16 v17, 0x1

    move/from16 v11, v17

    .line 1673
    .local v11, isSelected:Z
    :goto_0
    invoke-virtual/range {p1 .. p1}, Landroid/view/View;->isSelected()Z

    move-result v17

    move v0, v11

    move/from16 v1, v17

    if-eq v0, v1, :cond_7

    const/16 v17, 0x1

    move/from16 v15, v17

    .line 1674
    .local v15, updateChildSelected:Z
    :goto_1
    if-eqz p7, :cond_0

    if-nez v15, :cond_0

    invoke-virtual/range {p1 .. p1}, Landroid/view/View;->isLayoutRequested()Z

    move-result v17

    if-eqz v17, :cond_8

    :cond_0
    const/16 v17, 0x1

    move/from16 v13, v17

    .line 1678
    .local v13, needToMeasure:Z
    :goto_2
    invoke-virtual/range {p1 .. p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;

    move-result-object v14

    check-cast v14, Landroid/widget/MyAbsListView$LayoutParams;

    .line 1679
    .local v14, p:Landroid/widget/MyAbsListView$LayoutParams;
    if-nez v14, :cond_1

    .line 1680
    new-instance v14, Landroid/widget/MyAbsListView$LayoutParams;

    .end local v14           #p:Landroid/widget/MyAbsListView$LayoutParams;
    const/16 v17, -0x1

    const/16 v18, -0x2

    const/16 v19, 0x0

    move-object v0, v14

    move/from16 v1, v17

    move/from16 v2, v18

    move/from16 v3, v19

    invoke-direct {v0, v1, v2, v3}, Landroid/widget/MyAbsListView$LayoutParams;-><init>(III)V

    .line 1683
    .restart local v14       #p:Landroid/widget/MyAbsListView$LayoutParams;
    :cond_1
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    move-object/from16 v17, v0

    move-object/from16 v0, v17

    move/from16 v1, p2

    invoke-interface {v0, v1}, Landroid/widget/ListAdapter;->getItemViewType(I)I

    move-result v17

    move/from16 v0, v17

    move-object v1, v14

    iput v0, v1, Landroid/widget/MyAbsListView$LayoutParams;->viewType:I

    .line 1685
    if-nez p7, :cond_2

    move-object v0, v14

    iget-boolean v0, v0, Landroid/widget/MyAbsListView$LayoutParams;->recycledHeaderFooter:Z

    move/from16 v17, v0

    if-eqz v17, :cond_a

    move-object v0, v14

    iget v0, v0, Landroid/widget/MyAbsListView$LayoutParams;->viewType:I

    move/from16 v17, v0

    const/16 v18, -0x2

    move/from16 v0, v17

    move/from16 v1, v18

    if-ne v0, v1, :cond_a

    .line 1687
    :cond_2
    if-eqz p4, :cond_9

    const/16 v17, -0x1

    :goto_3
    move-object/from16 v0, p0

    move-object/from16 v1, p1

    move/from16 v2, v17

    move-object v3, v14

    invoke-virtual {v0, v1, v2, v3}, Landroid/widget/MyListView;->attachViewToParent(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V

    .line 1695
    :goto_4
    if-eqz v15, :cond_3

    .line 1696
    move-object/from16 v0, p1

    move v1, v11

    invoke-virtual {v0, v1}, Landroid/view/View;->setSelected(Z)V

    .line 1699
    :cond_3
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mChoiceMode:I

    move/from16 v17, v0

    if-eqz v17, :cond_4

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mCheckStates:Landroid/util/SparseBooleanArray;

    move-object/from16 v17, v0

    if-eqz v17, :cond_4

    .line 1700
    move-object/from16 v0, p1

    instance-of v0, v0, Landroid/widget/Checkable;

    move/from16 v17, v0

    if-eqz v17, :cond_4

    .line 1701
    move-object/from16 v0, p1

    check-cast v0, Landroid/widget/Checkable;

    move-object/from16 p6, v0

    .end local p6
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mCheckStates:Landroid/util/SparseBooleanArray;

    move-object/from16 v17, v0

    move-object/from16 v0, v17

    move/from16 v1, p2

    invoke-virtual {v0, v1}, Landroid/util/SparseBooleanArray;->get(I)Z

    move-result v17

    move-object/from16 v0, p6

    move/from16 v1, v17

    invoke-interface {v0, v1}, Landroid/widget/Checkable;->setChecked(Z)V

    .line 1705
    :cond_4
    if-eqz v13, :cond_e

    .line 1706
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mWidthMeasureSpec:I

    move/from16 v17, v0

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    move-object/from16 v18, v0

    move-object/from16 v0, v18

    iget v0, v0, Landroid/graphics/Rect;->left:I

    move/from16 v18, v0

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    move-object/from16 v19, v0

    move-object/from16 v0, v19

    iget v0, v0, Landroid/graphics/Rect;->right:I

    move/from16 v19, v0

    add-int v18, v18, v19

    move-object v0, v14

    iget v0, v0, Landroid/widget/MyAbsListView$LayoutParams;->width:I

    move/from16 v19, v0

    invoke-static/range {v17 .. v19}, Landroid/view/ViewGroup;->getChildMeasureSpec(III)I

    move-result v9

    .line 1708
    .local v9, childWidthSpec:I
    iget v12, v14, Landroid/widget/MyAbsListView$LayoutParams;->height:I

    .line 1710
    .local v12, lpHeight:I
    if-lez v12, :cond_d

    .line 1711
    const/high16 v17, 0x4000

    move v0, v12

    move/from16 v1, v17

    invoke-static {v0, v1}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I

    move-result v6

    .line 1715
    .local v6, childHeightSpec:I
    :goto_5
    move-object/from16 v0, p1

    move v1, v9

    move v2, v6

    invoke-virtual {v0, v1, v2}, Landroid/view/View;->measure(II)V

    .line 1720
    .end local v6           #childHeightSpec:I
    .end local v9           #childWidthSpec:I
    .end local v12           #lpHeight:I
    :goto_6
    invoke-virtual/range {p1 .. p1}, Landroid/view/View;->getMeasuredWidth()I

    move-result v16

    .line 1721
    .local v16, w:I
    invoke-virtual/range {p1 .. p1}, Landroid/view/View;->getMeasuredHeight()I

    move-result v10

    .line 1722
    .local v10, h:I
    if-eqz p4, :cond_f

    move/from16 v8, p3

    .line 1724
    .local v8, childTop:I
    :goto_7
    if-eqz v13, :cond_10

    .line 1725
    add-int v7, p5, v16

    .line 1726
    .local v7, childRight:I
    add-int v5, v8, v10

    .line 1727
    .local v5, childBottom:I
    move-object/from16 v0, p1

    move/from16 v1, p5

    move v2, v8

    move v3, v7

    move v4, v5

    invoke-virtual {v0, v1, v2, v3, v4}, Landroid/view/View;->layout(IIII)V

    .line 1733
    .end local v5           #childBottom:I
    .end local v7           #childRight:I
    :goto_8
    move-object/from16 v0, p0

    iget-boolean v0, v0, Landroid/widget/MyListView;->mCachingStarted:Z

    move/from16 v17, v0

    if-eqz v17, :cond_5

    invoke-virtual/range {p1 .. p1}, Landroid/view/View;->isDrawingCacheEnabled()Z

    move-result v17

    if-nez v17, :cond_5

    .line 1734
    const/16 v17, 0x1

    move-object/from16 v0, p1

    move/from16 v1, v17

    invoke-virtual {v0, v1}, Landroid/view/View;->setDrawingCacheEnabled(Z)V

    .line 1736
    :cond_5
    return-void

    .line 1672
    .end local v8           #childTop:I
    .end local v10           #h:I
    .end local v11           #isSelected:Z
    .end local v13           #needToMeasure:Z
    .end local v14           #p:Landroid/widget/MyAbsListView$LayoutParams;
    .end local v15           #updateChildSelected:Z
    .end local v16           #w:I
    .restart local p6
    :cond_6
    const/16 v17, 0x0

    move/from16 v11, v17

    goto/16 :goto_0

    .line 1673
    .restart local v11       #isSelected:Z
    :cond_7
    const/16 v17, 0x0

    move/from16 v15, v17

    goto/16 :goto_1

    .line 1674
    .restart local v15       #updateChildSelected:Z
    :cond_8
    const/16 v17, 0x0

    move/from16 v13, v17

    goto/16 :goto_2

    .line 1687
    .restart local v13       #needToMeasure:Z
    .restart local v14       #p:Landroid/widget/MyAbsListView$LayoutParams;
    :cond_9
    const/16 v17, 0x0

    goto/16 :goto_3

    .line 1689
    :cond_a
    move-object v0, v14

    iget v0, v0, Landroid/widget/MyAbsListView$LayoutParams;->viewType:I

    move/from16 v17, v0

    const/16 v18, -0x2

    move/from16 v0, v17

    move/from16 v1, v18

    if-ne v0, v1, :cond_b

    .line 1690
    const/16 v17, 0x1

    move/from16 v0, v17

    move-object v1, v14

    iput-boolean v0, v1, Landroid/widget/MyAbsListView$LayoutParams;->recycledHeaderFooter:Z

    .line 1692
    :cond_b
    if-eqz p4, :cond_c

    const/16 v17, -0x1

    :goto_9
    const/16 v18, 0x1

    move-object/from16 v0, p0

    move-object/from16 v1, p1

    move/from16 v2, v17

    move-object v3, v14

    move/from16 v4, v18

    invoke-virtual {v0, v1, v2, v3, v4}, Landroid/widget/MyListView;->addViewInLayout(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;Z)Z

    goto/16 :goto_4

    :cond_c
    const/16 v17, 0x0

    goto :goto_9

    .line 1713
    .end local p6
    .restart local v9       #childWidthSpec:I
    .restart local v12       #lpHeight:I
    :cond_d
    const/16 v17, 0x0

    const/16 v18, 0x0

    invoke-static/range {v17 .. v18}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I

    move-result v6

    .restart local v6       #childHeightSpec:I
    goto/16 :goto_5

    .line 1717
    .end local v6           #childHeightSpec:I
    .end local v9           #childWidthSpec:I
    .end local v12           #lpHeight:I
    :cond_e
    invoke-virtual/range {p0 .. p1}, Landroid/widget/MyListView;->cleanupLayoutState(Landroid/view/View;)V

    goto/16 :goto_6

    .line 1722
    .restart local v10       #h:I
    .restart local v16       #w:I
    :cond_f
    sub-int v17, p3, v10

    move/from16 v8, v17

    goto :goto_7

    .line 1729
    .restart local v8       #childTop:I
    :cond_10
    invoke-virtual/range {p1 .. p1}, Landroid/view/View;->getLeft()I

    move-result v17

    sub-int v17, p5, v17

    move-object/from16 v0, p1

    move/from16 v1, v17

    invoke-virtual {v0, v1}, Landroid/view/View;->offsetLeftAndRight(I)V

    .line 1730
    invoke-virtual/range {p1 .. p1}, Landroid/view/View;->getTop()I

    move-result v17

    sub-int v17, v8, v17

    move-object/from16 v0, p1

    move/from16 v1, v17

    invoke-virtual {v0, v1}, Landroid/view/View;->offsetTopAndBottom(I)V

    goto/16 :goto_8
.end method

.method private showingBottomFadingEdge()Z
    .locals 7

    .prologue
    const/4 v6, 0x1

    .line 505
    invoke-virtual {p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v1

    .line 506
    .local v1, childCount:I
    sub-int v4, v1, v6

    invoke-virtual {p0, v4}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v4

    invoke-virtual {v4}, Landroid/view/View;->getBottom()I

    move-result v0

    .line 507
    .local v0, bottomOfBottomChild:I
    iget v4, p0, Landroid/widget/MyListView;->mFirstPosition:I

    add-int/2addr v4, v1

    sub-int v2, v4, v6

    .line 509
    .local v2, lastVisiblePosition:I
    iget v4, p0, Landroid/widget/MyListView;->mScrollY:I

    invoke-virtual {p0}, Landroid/widget/MyListView;->getHeight()I

    move-result v5

    add-int/2addr v4, v5

    iget-object v5, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v5, v5, Landroid/graphics/Rect;->bottom:I

    sub-int v3, v4, v5

    .line 511
    .local v3, listBottom:I
    iget v4, p0, Landroid/widget/MyListView;->mItemCount:I

    sub-int/2addr v4, v6

    if-lt v2, v4, :cond_0

    if-ge v0, v3, :cond_1

    :cond_0
    move v4, v6

    :goto_0
    return v4

    :cond_1
    const/4 v4, 0x0

    goto :goto_0
.end method

.method private showingTopFadingEdge()Z
    .locals 4

    .prologue
    const/4 v3, 0x0

    .line 497
    iget v1, p0, Landroid/widget/MyListView;->mScrollY:I

    iget-object v2, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v2, v2, Landroid/graphics/Rect;->top:I

    add-int v0, v1, v2

    .line 498
    .local v0, listTop:I
    iget v1, p0, Landroid/widget/MyListView;->mFirstPosition:I

    if-gtz v1, :cond_0

    invoke-virtual {p0, v3}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v1

    invoke-virtual {v1}, Landroid/view/View;->getTop()I

    move-result v1

    if-le v1, v0, :cond_1

    :cond_0
    const/4 v1, 0x1

    :goto_0
    return v1

    :cond_1
    move v1, v3

    goto :goto_0
.end method


# virtual methods
.method public addFootViewWithoutDivider(Landroid/view/View;Ljava/lang/Object;Z)V
    .locals 0
    .parameter "v"
    .parameter "data"
    .parameter "isSelectable"

    .prologue
    .line 356
    iput-object p1, p0, Landroid/widget/MyListView;->mFooterViewWithoutDivider:Landroid/view/View;

    .line 357
    invoke-virtual {p0, p1, p2, p3}, Landroid/widget/MyListView;->addFooterView(Landroid/view/View;Ljava/lang/Object;Z)V

    .line 358
    return-void
.end method

.method public addFooterView(Landroid/view/View;)V
    .locals 2
    .parameter "v"

    .prologue
    .line 372
    const/4 v0, 0x0

    const/4 v1, 0x1

    invoke-virtual {p0, p1, v0, v1}, Landroid/widget/MyListView;->addFooterView(Landroid/view/View;Ljava/lang/Object;Z)V

    .line 373
    return-void
.end method

.method public addFooterView(Landroid/view/View;Ljava/lang/Object;Z)V
    .locals 2
    .parameter "v"
    .parameter "data"
    .parameter "isSelectable"

    .prologue
    .line 327
    new-instance v0, Landroid/widget/MyListView$FixedViewInfo;

    invoke-direct {v0, p0}, Landroid/widget/MyListView$FixedViewInfo;-><init>(Landroid/widget/MyListView;)V

    .line 328
    .local v0, info:Landroid/widget/MyListView$FixedViewInfo;
    iput-object p1, v0, Landroid/widget/MyListView$FixedViewInfo;->view:Landroid/view/View;

    .line 329
    iput-object p2, v0, Landroid/widget/MyListView$FixedViewInfo;->data:Ljava/lang/Object;

    .line 330
    iput-boolean p3, v0, Landroid/widget/MyListView$FixedViewInfo;->isSelectable:Z

    .line 331
    iget-object v1, p0, Landroid/widget/MyListView;->mFooterViewInfos:Ljava/util/ArrayList;

    invoke-virtual {v1, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z

    .line 335
    iget-object v1, p0, Landroid/widget/MyListView;->mDataSetObserver:Landroid/widget/MyAdapterView$AdapterDataSetObserver;

    if-eqz v1, :cond_0

    .line 336
    iget-object v1, p0, Landroid/widget/MyListView;->mDataSetObserver:Landroid/widget/MyAdapterView$AdapterDataSetObserver;

    invoke-virtual {v1}, Landroid/widget/MyAdapterView$AdapterDataSetObserver;->onChanged()V

    .line 338
    :cond_0
    return-void
.end method

.method public addHeaderView(Landroid/view/View;)V
    .locals 2
    .parameter "v"

    .prologue
    .line 274
    const/4 v0, 0x0

    const/4 v1, 0x1

    invoke-virtual {p0, p1, v0, v1}, Landroid/widget/MyListView;->addHeaderView(Landroid/view/View;Ljava/lang/Object;Z)V

    .line 275
    return-void
.end method

.method public addHeaderView(Landroid/view/View;Ljava/lang/Object;Z)V
    .locals 3
    .parameter "v"
    .parameter "data"
    .parameter "isSelectable"

    .prologue
    .line 250
    iget-object v1, p0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    if-eqz v1, :cond_0

    .line 251
    new-instance v1, Ljava/lang/IllegalStateException;

    const-string v2, "Cannot add header view to list -- setAdapter has already been called."

    invoke-direct {v1, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw v1

    .line 255
    :cond_0
    new-instance v0, Landroid/widget/MyListView$FixedViewInfo;

    invoke-direct {v0, p0}, Landroid/widget/MyListView$FixedViewInfo;-><init>(Landroid/widget/MyListView;)V

    .line 256
    .local v0, info:Landroid/widget/MyListView$FixedViewInfo;
    iput-object p1, v0, Landroid/widget/MyListView$FixedViewInfo;->view:Landroid/view/View;

    .line 257
    iput-object p2, v0, Landroid/widget/MyListView$FixedViewInfo;->data:Ljava/lang/Object;

    .line 258
    iput-boolean p3, v0, Landroid/widget/MyListView$FixedViewInfo;->isSelectable:Z

    .line 259
    iget-object v1, p0, Landroid/widget/MyListView;->mHeaderViewInfos:Ljava/util/ArrayList;

    invoke-virtual {v1, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z

    .line 260
    return-void
.end method

.method arrowScroll(I)Z
    .locals 3
    .parameter "direction"

    .prologue
    const/4 v2, 0x0

    .line 2130
    const/4 v1, 0x1

    :try_start_0
    iput-boolean v1, p0, Landroid/widget/MyListView;->mInLayout:Z

    .line 2131
    invoke-direct {p0, p1}, Landroid/widget/MyListView;->arrowScrollImpl(I)Z

    move-result v0

    .line 2132
    .local v0, handled:Z
    if-eqz v0, :cond_0

    .line 2133
    invoke-static {p1}, Landroid/view/SoundEffectConstants;->getContantForFocusDirection(I)I

    move-result v1

    invoke-virtual {p0, v1}, Landroid/widget/MyListView;->playSoundEffect(I)V
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    .line 2137
    :cond_0
    iput-boolean v2, p0, Landroid/widget/MyListView;->mInLayout:Z

    return v0

    .end local v0           #handled:Z
    :catchall_0
    move-exception v1

    iput-boolean v2, p0, Landroid/widget/MyListView;->mInLayout:Z

    throw v1
.end method

.method protected canAnimate()Z
    .locals 1

    .prologue
    .line 1740
    invoke-super {p0}, Landroid/widget/MyAbsListView;->canAnimate()Z

    move-result v0

    if-eqz v0, :cond_0

    iget v0, p0, Landroid/widget/MyListView;->mItemCount:I

    if-lez v0, :cond_0

    const/4 v0, 0x1

    :goto_0
    return v0

    :cond_0
    const/4 v0, 0x0

    goto :goto_0
.end method

.method public clearChoices()V
    .locals 1

    .prologue
    .line 3258
    iget-object v0, p0, Landroid/widget/MyListView;->mCheckStates:Landroid/util/SparseBooleanArray;

    if-eqz v0, :cond_0

    .line 3259
    iget-object v0, p0, Landroid/widget/MyListView;->mCheckStates:Landroid/util/SparseBooleanArray;

    invoke-virtual {v0}, Landroid/util/SparseBooleanArray;->clear()V

    .line 3261
    :cond_0
    return-void
.end method

.method protected dispatchDraw(Landroid/graphics/Canvas;)V
    .locals 20
    .parameter "canvas"

    .prologue
    .line 2784
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mDividerHeight:I

    move v8, v0

    .line 2786
    .local v8, dividerHeight:I
    if-lez v8, :cond_7

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mDivider:Landroid/graphics/drawable/Drawable;

    move-object/from16 v18, v0

    if-eqz v18, :cond_7

    .line 2788
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mTempRect:Landroid/graphics/Rect;

    move-object v5, v0

    .line 2789
    .local v5, bounds:Landroid/graphics/Rect;
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mPaddingLeft:I

    move/from16 v18, v0

    move/from16 v0, v18

    move-object v1, v5

    iput v0, v1, Landroid/graphics/Rect;->left:I

    .line 2790
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mRight:I

    move/from16 v18, v0

    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mLeft:I

    move/from16 v19, v0

    sub-int v18, v18, v19

    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mPaddingRight:I

    move/from16 v19, v0

    sub-int v18, v18, v19

    move/from16 v0, v18

    move-object v1, v5

    iput v0, v1, Landroid/graphics/Rect;->right:I

    .line 2792
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v7

    .line 2793
    .local v7, count:I
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mHeaderViewInfos:Ljava/util/ArrayList;

    move-object/from16 v18, v0

    invoke-virtual/range {v18 .. v18}, Ljava/util/ArrayList;->size()I

    move-result v12

    .line 2794
    .local v12, headerCount:I
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mItemCount:I

    move/from16 v18, v0

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mFooterViewInfos:Ljava/util/ArrayList;

    move-object/from16 v19, v0

    invoke-virtual/range {v19 .. v19}, Ljava/util/ArrayList;->size()I

    move-result v19

    sub-int v18, v18, v19

    const/16 v19, 0x1

    sub-int v11, v18, v19

    .line 2795
    .local v11, footerLimit:I
    move-object/from16 v0, p0

    iget-boolean v0, v0, Landroid/widget/MyListView;->mHeaderDividersEnabled:Z

    move v13, v0

    .line 2796
    .local v13, headerDividers:Z
    move-object/from16 v0, p0

    iget-boolean v0, v0, Landroid/widget/MyListView;->mFooterDividersEnabled:Z

    move v10, v0

    .line 2797
    .local v10, footerDividers:Z
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mFirstPosition:I

    move v9, v0

    .line 2799
    .local v9, first:I
    move-object/from16 v0, p0

    iget-boolean v0, v0, Landroid/widget/MyListView;->mStackFromBottom:Z

    move/from16 v18, v0

    if-nez v18, :cond_3

    .line 2801
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mBottom:I

    move/from16 v18, v0

    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mTop:I

    move/from16 v19, v0

    sub-int v18, v18, v19

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    move-object/from16 v19, v0

    move-object/from16 v0, v19

    iget v0, v0, Landroid/graphics/Rect;->bottom:I

    move/from16 v19, v0

    sub-int v15, v18, v19

    .line 2803
    .local v15, listBottom:I
    const/4 v14, 0x0

    .local v14, i:I
    :goto_0
    if-ge v14, v7, :cond_7

    .line 2804
    if-nez v13, :cond_0

    add-int v18, v9, v14

    move/from16 v0, v18

    move v1, v12

    if-lt v0, v1, :cond_2

    :cond_0
    if-nez v10, :cond_1

    add-int v18, v9, v14

    move/from16 v0, v18

    move v1, v11

    if-ge v0, v1, :cond_2

    .line 2806
    :cond_1
    move-object/from16 v0, p0

    move v1, v14

    invoke-virtual {v0, v1}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v6

    .line 2807
    .local v6, child:Landroid/view/View;
    invoke-virtual {v6}, Landroid/view/View;->getBottom()I

    move-result v4

    .line 2808
    .local v4, bottom:I
    if-ge v4, v15, :cond_2

    .line 2809
    iput v4, v5, Landroid/graphics/Rect;->top:I

    .line 2810
    add-int v18, v4, v8

    move/from16 v0, v18

    move-object v1, v5

    iput v0, v1, Landroid/graphics/Rect;->bottom:I

    .line 2814
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mFooterViewWithoutDivider:Landroid/view/View;

    move-object/from16 v18, v0

    move-object/from16 v0, v18

    move-object v1, v6

    if-eq v0, v1, :cond_2

    .line 2816
    move-object/from16 v0, p0

    move-object/from16 v1, p1

    move-object v2, v5

    move v3, v14

    invoke-virtual {v0, v1, v2, v3}, Landroid/widget/MyListView;->drawDivider(Landroid/graphics/Canvas;Landroid/graphics/Rect;I)V

    .line 2803
    .end local v4           #bottom:I
    .end local v6           #child:Landroid/view/View;
    :cond_2
    add-int/lit8 v14, v14, 0x1

    goto :goto_0

    .line 2826
    .end local v14           #i:I
    .end local v15           #listBottom:I
    :cond_3
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    move-object/from16 v18, v0

    move-object/from16 v0, v18

    iget v0, v0, Landroid/graphics/Rect;->top:I

    move/from16 v16, v0

    .line 2828
    .local v16, listTop:I
    const/4 v14, 0x0

    .restart local v14       #i:I
    :goto_1
    if-ge v14, v7, :cond_7

    .line 2829
    if-nez v13, :cond_4

    add-int v18, v9, v14

    move/from16 v0, v18

    move v1, v12

    if-lt v0, v1, :cond_6

    :cond_4
    if-nez v10, :cond_5

    add-int v18, v9, v14

    move/from16 v0, v18

    move v1, v11

    if-ge v0, v1, :cond_6

    .line 2831
    :cond_5
    move-object/from16 v0, p0

    move v1, v14

    invoke-virtual {v0, v1}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v6

    .line 2832
    .restart local v6       #child:Landroid/view/View;
    invoke-virtual {v6}, Landroid/view/View;->getTop()I

    move-result v17

    .line 2833
    .local v17, top:I
    move/from16 v0, v17

    move/from16 v1, v16

    if-le v0, v1, :cond_6

    .line 2834
    sub-int v18, v17, v8

    move/from16 v0, v18

    move-object v1, v5

    iput v0, v1, Landroid/graphics/Rect;->top:I

    .line 2835
    move/from16 v0, v17

    move-object v1, v5

    iput v0, v1, Landroid/graphics/Rect;->bottom:I

    .line 2843
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mFooterViewWithoutDivider:Landroid/view/View;

    move-object/from16 v18, v0

    move-object/from16 v0, v18

    move-object v1, v6

    if-eq v0, v1, :cond_6

    .line 2845
    const/16 v18, 0x1

    sub-int v18, v14, v18

    move-object/from16 v0, p0

    move-object/from16 v1, p1

    move-object v2, v5

    move/from16 v3, v18

    invoke-virtual {v0, v1, v2, v3}, Landroid/widget/MyListView;->drawDivider(Landroid/graphics/Canvas;Landroid/graphics/Rect;I)V

    .line 2828
    .end local v6           #child:Landroid/view/View;
    .end local v17           #top:I
    :cond_6
    add-int/lit8 v14, v14, 0x1

    goto :goto_1

    .line 2857
    .end local v5           #bounds:Landroid/graphics/Rect;
    .end local v7           #count:I
    .end local v9           #first:I
    .end local v10           #footerDividers:Z
    .end local v11           #footerLimit:I
    .end local v12           #headerCount:I
    .end local v13           #headerDividers:Z
    .end local v14           #i:I
    .end local v16           #listTop:I
    :cond_7
    invoke-super/range {p0 .. p1}, Landroid/widget/MyAbsListView;->dispatchDraw(Landroid/graphics/Canvas;)V

    .line 2858
    return-void
.end method

.method public dispatchKeyEvent(Landroid/view/KeyEvent;)Z
    .locals 3
    .parameter "event"

    .prologue
    .line 1866
    invoke-super {p0, p1}, Landroid/widget/MyAbsListView;->dispatchKeyEvent(Landroid/view/KeyEvent;)Z

    move-result v1

    .line 1867
    .local v1, handled:Z
    if-nez v1, :cond_0

    .line 1869
    invoke-virtual {p0}, Landroid/widget/MyListView;->getFocusedChild()Landroid/view/View;

    move-result-object v0

    .line 1870
    .local v0, focused:Landroid/view/View;
    if-eqz v0, :cond_0

    invoke-virtual {p1}, Landroid/view/KeyEvent;->getAction()I

    move-result v2

    if-nez v2, :cond_0

    .line 1873
    invoke-virtual {p1}, Landroid/view/KeyEvent;->getKeyCode()I

    move-result v2

    invoke-virtual {p0, v2, p1}, Landroid/widget/MyListView;->onKeyDown(ILandroid/view/KeyEvent;)Z

    move-result v1

    .line 1876
    .end local v0           #focused:Landroid/view/View;
    :cond_0
    return v1
.end method

.method drawDivider(Landroid/graphics/Canvas;Landroid/graphics/Rect;I)V
    .locals 2
    .parameter "canvas"
    .parameter "bounds"
    .parameter "childIndex"

    .prologue
    .line 2871
    iget-object v1, p0, Landroid/widget/MyListView;->mDivider:Landroid/graphics/drawable/Drawable;

    .line 2872
    .local v1, divider:Landroid/graphics/drawable/Drawable;
    iget-boolean v0, p0, Landroid/widget/MyListView;->mClipDivider:Z

    .line 2874
    .local v0, clipDivider:Z
    if-nez v0, :cond_1

    .line 2875
    invoke-virtual {v1, p2}, Landroid/graphics/drawable/Drawable;->setBounds(Landroid/graphics/Rect;)V

    .line 2881
    :goto_0
    invoke-virtual {v1, p1}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V

    .line 2883
    if-eqz v0, :cond_0

    .line 2884
    invoke-virtual {p1}, Landroid/graphics/Canvas;->restore()V

    .line 2886
    :cond_0
    return-void

    .line 2877
    :cond_1
    invoke-virtual {p1}, Landroid/graphics/Canvas;->save()I

    .line 2878
    invoke-virtual {p1, p2}, Landroid/graphics/Canvas;->clipRect(Landroid/graphics/Rect;)Z

    goto :goto_0
.end method

.method fillGap(Z)V
    .locals 5
    .parameter "down"

    .prologue
    const/4 v4, 0x1

    .line 600
    invoke-virtual {p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v0

    .line 601
    .local v0, count:I
    if-eqz p1, :cond_1

    .line 602
    if-lez v0, :cond_0

    sub-int v2, v0, v4

    invoke-virtual {p0, v2}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v2

    invoke-virtual {v2}, Landroid/view/View;->getBottom()I

    move-result v2

    iget v3, p0, Landroid/widget/MyListView;->mDividerHeight:I

    add-int/2addr v2, v3

    move v1, v2

    .line 604
    .local v1, startOffset:I
    :goto_0
    iget v2, p0, Landroid/widget/MyListView;->mFirstPosition:I

    add-int/2addr v2, v0

    invoke-direct {p0, v2, v1}, Landroid/widget/MyListView;->fillDown(II)Landroid/view/View;

    .line 605
    invoke-virtual {p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v2

    invoke-direct {p0, v2}, Landroid/widget/MyListView;->correctTooHigh(I)V

    .line 612
    :goto_1
    return-void

    .line 602
    .end local v1           #startOffset:I
    :cond_0
    invoke-virtual {p0}, Landroid/widget/MyListView;->getListPaddingTop()I

    move-result v2

    move v1, v2

    goto :goto_0

    .line 607
    :cond_1
    if-lez v0, :cond_2

    const/4 v2, 0x0

    invoke-virtual {p0, v2}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v2

    invoke-virtual {v2}, Landroid/view/View;->getTop()I

    move-result v2

    iget v3, p0, Landroid/widget/MyListView;->mDividerHeight:I

    sub-int/2addr v2, v3

    move v1, v2

    .line 609
    .restart local v1       #startOffset:I
    :goto_2
    iget v2, p0, Landroid/widget/MyListView;->mFirstPosition:I

    sub-int/2addr v2, v4

    invoke-direct {p0, v2, v1}, Landroid/widget/MyListView;->fillUp(II)Landroid/view/View;

    .line 610
    invoke-virtual {p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v2

    invoke-direct {p0, v2}, Landroid/widget/MyListView;->correctTooLow(I)V

    goto :goto_1

    .line 607
    .end local v1           #startOffset:I
    :cond_2
    invoke-virtual {p0}, Landroid/widget/MyListView;->getHeight()I

    move-result v2

    invoke-virtual {p0}, Landroid/widget/MyListView;->getListPaddingBottom()I

    move-result v3

    sub-int/2addr v2, v3

    move v1, v2

    goto :goto_2
.end method

.method findMotionRow(I)I
    .locals 5
    .parameter "y"

    .prologue
    .line 1181
    invoke-virtual {p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v0

    .line 1182
    .local v0, childCount:I
    if-lez v0, :cond_2

    .line 1183
    const/4 v1, 0x0

    .local v1, i:I
    :goto_0
    if-ge v1, v0, :cond_1

    .line 1184
    invoke-virtual {p0, v1}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v2

    .line 1185
    .local v2, v:Landroid/view/View;
    invoke-virtual {v2}, Landroid/view/View;->getBottom()I

    move-result v3

    if-gt p1, v3, :cond_0

    .line 1186
    iget v3, p0, Landroid/widget/MyListView;->mFirstPosition:I

    add-int/2addr v3, v1

    .line 1191
    .end local v1           #i:I
    .end local v2           #v:Landroid/view/View;
    :goto_1
    return v3

    .line 1183
    .restart local v1       #i:I
    .restart local v2       #v:Landroid/view/View;
    :cond_0
    add-int/lit8 v1, v1, 0x1

    goto :goto_0

    .line 1189
    .end local v2           #v:Landroid/view/View;
    :cond_1
    iget v3, p0, Landroid/widget/MyListView;->mFirstPosition:I

    add-int/2addr v3, v0

    const/4 v4, 0x1

    sub-int/2addr v3, v4

    goto :goto_1

    .line 1191
    .end local v1           #i:I
    :cond_2
    const/4 v3, -0x1

    goto :goto_1
.end method

.method findViewInHeadersOrFooters(Ljava/util/ArrayList;I)Landroid/view/View;
    .locals 4
    .parameter
    .parameter "id"
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/ArrayList",
            "<",
            "Landroid/widget/MyListView$FixedViewInfo;",
            ">;I)",
            "Landroid/view/View;"
        }
    .end annotation

    .prologue
    .line 3046
    .local p1, where:Ljava/util/ArrayList;,"Ljava/util/ArrayList<Landroid/widget/MyListView$FixedViewInfo;>;"
    if-eqz p1, :cond_1

    .line 3047
    invoke-virtual {p1}, Ljava/util/ArrayList;->size()I

    move-result v1

    .line 3050
    .local v1, len:I
    const/4 v0, 0x0

    .end local p0
    .local v0, i:I
    :goto_0
    if-ge v0, v1, :cond_1

    .line 3051
    invoke-virtual {p1, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;

    move-result-object p0

    check-cast p0, Landroid/widget/MyListView$FixedViewInfo;

    iget-object v2, p0, Landroid/widget/MyListView$FixedViewInfo;->view:Landroid/view/View;

    .line 3053
    .local v2, v:Landroid/view/View;
    invoke-virtual {v2}, Landroid/view/View;->isRootNamespace()Z

    move-result v3

    if-nez v3, :cond_0

    .line 3054
    invoke-virtual {v2, p2}, Landroid/view/View;->findViewById(I)Landroid/view/View;

    move-result-object v2

    .line 3056
    if-eqz v2, :cond_0

    move-object v3, v2

    .line 3062
    .end local v0           #i:I
    .end local v1           #len:I
    .end local v2           #v:Landroid/view/View;
    :goto_1
    return-object v3

    .line 3050
    .restart local v0       #i:I
    .restart local v1       #len:I
    .restart local v2       #v:Landroid/view/View;
    :cond_0
    add-int/lit8 v0, v0, 0x1

    goto :goto_0

    .line 3062
    .end local v0           #i:I
    .end local v1           #len:I
    .end local v2           #v:Landroid/view/View;
    :cond_1
    const/4 v3, 0x0

    goto :goto_1
.end method

.method findViewTagInHeadersOrFooters(Ljava/util/ArrayList;Ljava/lang/Object;)Landroid/view/View;
    .locals 4
    .parameter
    .parameter "tag"
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/ArrayList",
            "<",
            "Landroid/widget/MyListView$FixedViewInfo;",
            ">;",
            "Ljava/lang/Object;",
            ")",
            "Landroid/view/View;"
        }
    .end annotation

    .prologue
    .line 3092
    .local p1, where:Ljava/util/ArrayList;,"Ljava/util/ArrayList<Landroid/widget/MyListView$FixedViewInfo;>;"
    if-eqz p1, :cond_1

    .line 3093
    invoke-virtual {p1}, Ljava/util/ArrayList;->size()I

    move-result v1

    .line 3096
    .local v1, len:I
    const/4 v0, 0x0

    .end local p0
    .local v0, i:I
    :goto_0
    if-ge v0, v1, :cond_1

    .line 3097
    invoke-virtual {p1, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;

    move-result-object p0

    check-cast p0, Landroid/widget/MyListView$FixedViewInfo;

    iget-object v2, p0, Landroid/widget/MyListView$FixedViewInfo;->view:Landroid/view/View;

    .line 3099
    .local v2, v:Landroid/view/View;
    invoke-virtual {v2}, Landroid/view/View;->isRootNamespace()Z

    move-result v3

    if-nez v3, :cond_0

    .line 3100
    invoke-virtual {v2, p2}, Landroid/view/View;->findViewWithTag(Ljava/lang/Object;)Landroid/view/View;

    move-result-object v2

    .line 3102
    if-eqz v2, :cond_0

    move-object v3, v2

    .line 3108
    .end local v0           #i:I
    .end local v1           #len:I
    .end local v2           #v:Landroid/view/View;
    :goto_1
    return-object v3

    .line 3096
    .restart local v0       #i:I
    .restart local v1       #len:I
    .restart local v2       #v:Landroid/view/View;
    :cond_0
    add-int/lit8 v0, v0, 0x1

    goto :goto_0

    .line 3108
    .end local v0           #i:I
    .end local v1           #len:I
    .end local v2           #v:Landroid/view/View;
    :cond_1
    const/4 v3, 0x0

    goto :goto_1
.end method

.method protected findViewTraversal(I)Landroid/view/View;
    .locals 3
    .parameter "id"

    .prologue
    .line 3027
    invoke-super {p0, p1}, Landroid/widget/MyAbsListView;->findViewTraversal(I)Landroid/view/View;

    move-result-object v0

    .line 3028
    .local v0, v:Landroid/view/View;
    if-nez v0, :cond_1

    .line 3029
    iget-object v2, p0, Landroid/widget/MyListView;->mHeaderViewInfos:Ljava/util/ArrayList;

    invoke-virtual {p0, v2, p1}, Landroid/widget/MyListView;->findViewInHeadersOrFooters(Ljava/util/ArrayList;I)Landroid/view/View;

    move-result-object v0

    .line 3030
    if-eqz v0, :cond_0

    move-object v1, v0

    .line 3038
    .end local v0           #v:Landroid/view/View;
    .local v1, v:Landroid/view/View;
    :goto_0
    return-object v1

    .line 3033
    .end local v1           #v:Landroid/view/View;
    .restart local v0       #v:Landroid/view/View;
    :cond_0
    iget-object v2, p0, Landroid/widget/MyListView;->mFooterViewInfos:Ljava/util/ArrayList;

    invoke-virtual {p0, v2, p1}, Landroid/widget/MyListView;->findViewInHeadersOrFooters(Ljava/util/ArrayList;I)Landroid/view/View;

    move-result-object v0

    .line 3034
    if-eqz v0, :cond_1

    move-object v1, v0

    .line 3035
    .end local v0           #v:Landroid/view/View;
    .restart local v1       #v:Landroid/view/View;
    goto :goto_0

    .end local v1           #v:Landroid/view/View;
    .restart local v0       #v:Landroid/view/View;
    :cond_1
    move-object v1, v0

    .line 3038
    .end local v0           #v:Landroid/view/View;
    .restart local v1       #v:Landroid/view/View;
    goto :goto_0
.end method

.method protected findViewWithTagTraversal(Ljava/lang/Object;)Landroid/view/View;
    .locals 3
    .parameter "tag"

    .prologue
    .line 3072
    invoke-super {p0, p1}, Landroid/widget/MyAbsListView;->findViewWithTagTraversal(Ljava/lang/Object;)Landroid/view/View;

    move-result-object v0

    .line 3073
    .local v0, v:Landroid/view/View;
    if-nez v0, :cond_1

    .line 3074
    iget-object v2, p0, Landroid/widget/MyListView;->mHeaderViewInfos:Ljava/util/ArrayList;

    invoke-virtual {p0, v2, p1}, Landroid/widget/MyListView;->findViewTagInHeadersOrFooters(Ljava/util/ArrayList;Ljava/lang/Object;)Landroid/view/View;

    move-result-object v0

    .line 3075
    if-eqz v0, :cond_0

    move-object v1, v0

    .line 3084
    .end local v0           #v:Landroid/view/View;
    .local v1, v:Landroid/view/View;
    :goto_0
    return-object v1

    .line 3079
    .end local v1           #v:Landroid/view/View;
    .restart local v0       #v:Landroid/view/View;
    :cond_0
    iget-object v2, p0, Landroid/widget/MyListView;->mFooterViewInfos:Ljava/util/ArrayList;

    invoke-virtual {p0, v2, p1}, Landroid/widget/MyListView;->findViewTagInHeadersOrFooters(Ljava/util/ArrayList;Ljava/lang/Object;)Landroid/view/View;

    move-result-object v0

    .line 3080
    if-eqz v0, :cond_1

    move-object v1, v0

    .line 3081
    .end local v0           #v:Landroid/view/View;
    .restart local v1       #v:Landroid/view/View;
    goto :goto_0

    .end local v1           #v:Landroid/view/View;
    .restart local v0       #v:Landroid/view/View;
    :cond_1
    move-object v1, v0

    .line 3084
    .end local v0           #v:Landroid/view/View;
    .restart local v1       #v:Landroid/view/View;
    goto :goto_0
.end method

.method fullScroll(I)Z
    .locals 5
    .parameter "direction"

    .prologue
    const/4 v4, 0x1

    .line 2044
    const/4 v0, 0x0

    .line 2045
    .local v0, moved:Z
    const/16 v2, 0x21

    if-ne p1, v2, :cond_3

    .line 2046
    iget v2, p0, Landroid/widget/MyListView;->mSelectedPosition:I

    if-eqz v2, :cond_1

    .line 2047
    const/4 v2, 0x0

    invoke-virtual {p0, v2, v4}, Landroid/widget/MyListView;->lookForSelectablePosition(IZ)I

    move-result v1

    .line 2048
    .local v1, position:I
    if-ltz v1, :cond_0

    .line 2049
    iput v4, p0, Landroid/widget/MyListView;->mLayoutMode:I

    .line 2050
    invoke-virtual {p0, v1}, Landroid/widget/MyListView;->setSelectionInt(I)V

    .line 2051
    invoke-virtual {p0}, Landroid/widget/MyListView;->invokeOnItemScrollListener()V

    .line 2053
    :cond_0
    const/4 v0, 0x1

    .line 2067
    .end local v1           #position:I
    :cond_1
    :goto_0
    if-eqz v0, :cond_2

    .line 2068
    invoke-virtual {p0}, Landroid/widget/MyListView;->invalidate()V

    .line 2071
    :cond_2
    return v0

    .line 2055
    :cond_3
    const/16 v2, 0x82

    if-ne p1, v2, :cond_1

    .line 2056
    iget v2, p0, Landroid/widget/MyListView;->mSelectedPosition:I

    iget v3, p0, Landroid/widget/MyListView;->mItemCount:I

    sub-int/2addr v3, v4

    if-ge v2, v3, :cond_1

    .line 2057
    iget v2, p0, Landroid/widget/MyListView;->mItemCount:I

    sub-int/2addr v2, v4

    invoke-virtual {p0, v2, v4}, Landroid/widget/MyListView;->lookForSelectablePosition(IZ)I

    move-result v1

    .line 2058
    .restart local v1       #position:I
    if-ltz v1, :cond_4

    .line 2059
    const/4 v2, 0x3

    iput v2, p0, Landroid/widget/MyListView;->mLayoutMode:I

    .line 2060
    invoke-virtual {p0, v1}, Landroid/widget/MyListView;->setSelectionInt(I)V

    .line 2061
    invoke-virtual {p0}, Landroid/widget/MyListView;->invokeOnItemScrollListener()V

    .line 2063
    :cond_4
    const/4 v0, 0x1

    goto :goto_0
.end method

.method public bridge synthetic getAdapter()Landroid/widget/Adapter;
    .locals 1

    .prologue
    .line 65
    invoke-virtual {p0}, Landroid/widget/MyListView;->getAdapter()Landroid/widget/ListAdapter;

    move-result-object v0

    return-object v0
.end method

.method public getAdapter()Landroid/widget/ListAdapter;
    .locals 1

    .prologue
    .line 411
    iget-object v0, p0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    return-object v0
.end method

.method public getCheckedItemPosition()I
    .locals 2

    .prologue
    const/4 v1, 0x1

    .line 3233
    iget v0, p0, Landroid/widget/MyListView;->mChoiceMode:I

    if-ne v0, v1, :cond_0

    iget-object v0, p0, Landroid/widget/MyListView;->mCheckStates:Landroid/util/SparseBooleanArray;

    if-eqz v0, :cond_0

    iget-object v0, p0, Landroid/widget/MyListView;->mCheckStates:Landroid/util/SparseBooleanArray;

    invoke-virtual {v0}, Landroid/util/SparseBooleanArray;->size()I

    move-result v0

    if-ne v0, v1, :cond_0

    .line 3234
    iget-object v0, p0, Landroid/widget/MyListView;->mCheckStates:Landroid/util/SparseBooleanArray;

    const/4 v1, 0x0

    invoke-virtual {v0, v1}, Landroid/util/SparseBooleanArray;->keyAt(I)I

    move-result v0

    .line 3237
    :goto_0
    return v0

    :cond_0
    const/4 v0, -0x1

    goto :goto_0
.end method

.method public getCheckedItemPositions()Landroid/util/SparseBooleanArray;
    .locals 1

    .prologue
    .line 3248
    iget v0, p0, Landroid/widget/MyListView;->mChoiceMode:I

    if-eqz v0, :cond_0

    .line 3249
    iget-object v0, p0, Landroid/widget/MyListView;->mCheckStates:Landroid/util/SparseBooleanArray;

    .line 3251
    :goto_0
    return-object v0

    :cond_0
    const/4 v0, 0x0

    goto :goto_0
.end method

.method public getChoiceMode()I
    .locals 1

    .prologue
    .line 3127
    iget v0, p0, Landroid/widget/MyListView;->mChoiceMode:I

    return v0
.end method

.method public getDivider()Landroid/graphics/drawable/Drawable;
    .locals 1

    .prologue
    .line 2894
    iget-object v0, p0, Landroid/widget/MyListView;->mDivider:Landroid/graphics/drawable/Drawable;

    return-object v0
.end method

.method public getDividerHeight()I
    .locals 1

    .prologue
    .line 2919
    iget v0, p0, Landroid/widget/MyListView;->mDividerHeight:I

    return v0
.end method

.method public getFooterViewsCount()I
    .locals 1

    .prologue
    .line 377
    iget-object v0, p0, Landroid/widget/MyListView;->mFooterViewInfos:Ljava/util/ArrayList;

    invoke-virtual {v0}, Ljava/util/ArrayList;->size()I

    move-result v0

    return v0
.end method

.method public getHeaderViewsCount()I
    .locals 1

    .prologue
    .line 279
    iget-object v0, p0, Landroid/widget/MyListView;->mHeaderViewInfos:Ljava/util/ArrayList;

    invoke-virtual {v0}, Ljava/util/ArrayList;->size()I

    move-result v0

    return v0
.end method

.method public getItemsCanFocus()Z
    .locals 1

    .prologue
    .line 2778
    iget-boolean v0, p0, Landroid/widget/MyListView;->mItemsCanFocus:Z

    return v0
.end method

.method public getMaxScrollAmount()I
    .locals 3

    .prologue
    .line 185
    const v0, 0x3ea8f5c3

    iget v1, p0, Landroid/widget/MyListView;->mBottom:I

    iget v2, p0, Landroid/widget/MyListView;->mTop:I

    sub-int/2addr v1, v2

    int-to-float v1, v1

    mul-float/2addr v0, v1

    float-to-int v0, v0

    return v0
.end method

.method public isItemChecked(I)Z
    .locals 1
    .parameter "position"

    .prologue
    .line 3216
    iget v0, p0, Landroid/widget/MyListView;->mChoiceMode:I

    if-eqz v0, :cond_0

    iget-object v0, p0, Landroid/widget/MyListView;->mCheckStates:Landroid/util/SparseBooleanArray;

    if-eqz v0, :cond_0

    .line 3217
    iget-object v0, p0, Landroid/widget/MyListView;->mCheckStates:Landroid/util/SparseBooleanArray;

    invoke-virtual {v0, p1}, Landroid/util/SparseBooleanArray;->get(I)Z

    move-result v0

    .line 3220
    :goto_0
    return v0

    :cond_0
    const/4 v0, 0x0

    goto :goto_0
.end method

.method protected layoutChildren()V
    .locals 25

    .prologue
    .line 1346
    move-object/from16 v0, p0

    iget-boolean v0, v0, Landroid/widget/MyListView;->mBlockLayoutRequests:Z

    move v10, v0

    .line 1347
    .local v10, blockLayoutRequests:Z
    if-nez v10, :cond_0

    .line 1348
    const/4 v4, 0x1

    move v0, v4

    move-object/from16 v1, p0

    iput-boolean v0, v1, Landroid/widget/MyListView;->mBlockLayoutRequests:Z

    .line 1354
    :try_start_0
    invoke-super/range {p0 .. p0}, Landroid/widget/MyAbsListView;->layoutChildren()V

    .line 1356
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->invalidate()V

    .line 1358
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    move-object v4, v0

    if-nez v4, :cond_1

    .line 1359
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->resetList()V

    .line 1360
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->invokeOnItemScrollListener()V
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    .line 1583
    if-nez v10, :cond_0

    .line 1584
    const/4 v4, 0x0

    move v0, v4

    move-object/from16 v1, p0

    iput-boolean v0, v1, Landroid/widget/MyListView;->mBlockLayoutRequests:Z

    .line 1587
    :cond_0
    :goto_0
    return-void

    .line 1364
    :cond_1
    :try_start_1
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    move-object v4, v0

    iget v8, v4, Landroid/graphics/Rect;->top:I

    .line 1365
    .local v8, childrenTop:I
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mBottom:I

    move v4, v0

    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mTop:I

    move v5, v0

    sub-int/2addr v4, v5

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    move-object v5, v0

    iget v5, v5, Landroid/graphics/Rect;->bottom:I

    sub-int v9, v4, v5

    .line 1367
    .local v9, childrenBottom:I
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v11

    .line 1369
    .local v11, childCount:I
    const/4 v7, 0x0

    .line 1372
    .local v7, delta:I
    const/4 v5, 0x0

    .line 1373
    .local v5, oldSel:Landroid/view/View;
    const/16 v21, 0x0

    .line 1374
    .local v21, oldFirst:Landroid/view/View;
    const/4 v6, 0x0

    .line 1376
    .local v6, newSel:Landroid/view/View;
    const/4 v15, 0x0

    .line 1379
    .local v15, focusLayoutRestoreView:Landroid/view/View;
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mLayoutMode:I

    move v4, v0

    packed-switch v4, :pswitch_data_0

    .line 1394
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mSelectedPosition:I

    move v4, v0

    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mFirstPosition:I

    move v6, v0

    .end local v6           #newSel:Landroid/view/View;
    sub-int v20, v4, v6

    .line 1395
    .local v20, index:I
    if-ltz v20, :cond_2

    move/from16 v0, v20

    move v1, v11

    if-ge v0, v1, :cond_2

    .line 1396
    move-object/from16 v0, p0

    move/from16 v1, v20

    invoke-virtual {v0, v1}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v5

    .line 1400
    :cond_2
    const/4 v4, 0x0

    move-object/from16 v0, p0

    move v1, v4

    invoke-virtual {v0, v1}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v21

    .line 1402
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mNextSelectedPosition:I

    move v4, v0

    if-ltz v4, :cond_3

    .line 1403
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mNextSelectedPosition:I

    move v4, v0

    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mSelectedPosition:I

    move v6, v0

    sub-int v7, v4, v6

    .line 1407
    :cond_3
    add-int v4, v20, v7

    move-object/from16 v0, p0

    move v1, v4

    invoke-virtual {v0, v1}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v6

    .line 1411
    .end local v20           #index:I
    .restart local v6       #newSel:Landroid/view/View;
    :cond_4
    :goto_1
    :pswitch_0
    move-object/from16 v0, p0

    iget-boolean v0, v0, Landroid/widget/MyListView;->mDataChanged:Z

    move v12, v0

    .line 1412
    .local v12, dataChanged:Z
    if-eqz v12, :cond_5

    .line 1413
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->handleDataChanged()V

    .line 1418
    :cond_5
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mItemCount:I

    move v4, v0

    if-nez v4, :cond_6

    .line 1419
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->resetList()V

    .line 1420
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->invokeOnItemScrollListener()V
    :try_end_1
    .catchall {:try_start_1 .. :try_end_1} :catchall_0

    .line 1583
    if-nez v10, :cond_0

    .line 1584
    const/4 v4, 0x0

    move v0, v4

    move-object/from16 v1, p0

    iput-boolean v0, v1, Landroid/widget/MyListView;->mBlockLayoutRequests:Z

    goto/16 :goto_0

    .line 1381
    .end local v12           #dataChanged:Z
    :pswitch_1
    :try_start_2
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mNextSelectedPosition:I

    move v4, v0

    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mFirstPosition:I

    move v12, v0

    sub-int v20, v4, v12

    .line 1382
    .restart local v20       #index:I
    if-ltz v20, :cond_4

    move/from16 v0, v20

    move v1, v11

    if-ge v0, v1, :cond_4

    .line 1383
    move-object/from16 v0, p0

    move/from16 v1, v20

    invoke-virtual {v0, v1}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v6

    goto :goto_1

    .line 1424
    .end local v20           #index:I
    .restart local v12       #dataChanged:Z
    :cond_6
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mNextSelectedPosition:I

    move v4, v0

    move-object/from16 v0, p0

    move v1, v4

    invoke-virtual {v0, v1}, Landroid/widget/MyListView;->setSelectedPositionInt(I)V

    .line 1428
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mFirstPosition:I

    move v13, v0

    .line 1429
    .local v13, firstPosition:I
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mRecycler:Landroid/widget/MyAbsListView$RecycleBin;

    move-object/from16 v23, v0

    .line 1432
    .local v23, recycleBin:Landroid/widget/MyAbsListView$RecycleBin;
    const/4 v14, 0x0

    .line 1437
    .local v14, focusLayoutRestoreDirectChild:Landroid/view/View;
    if-eqz v12, :cond_7

    .line 1438
    const/16 v19, 0x0

    .local v19, i:I
    :goto_2
    move/from16 v0, v19

    move v1, v11

    if-ge v0, v1, :cond_8

    .line 1439
    move-object/from16 v0, p0

    move/from16 v1, v19

    invoke-virtual {v0, v1}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v4

    move-object/from16 v0, v23

    move-object v1, v4

    invoke-virtual {v0, v1}, Landroid/widget/MyAbsListView$RecycleBin;->addScrapView(Landroid/view/View;)V

    .line 1438
    add-int/lit8 v19, v19, 0x1

    goto :goto_2

    .line 1446
    .end local v19           #i:I
    :cond_7
    move-object/from16 v0, v23

    move v1, v11

    move v2, v13

    invoke-virtual {v0, v1, v2}, Landroid/widget/MyAbsListView$RecycleBin;->fillActiveViews(II)V

    .line 1453
    :cond_8
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->getFocusedChild()Landroid/view/View;

    move-result-object v18

    .line 1454
    .local v18, focusedChild:Landroid/view/View;
    if-eqz v18, :cond_b

    .line 1459
    if-eqz v12, :cond_9

    move-object/from16 v0, p0

    move-object/from16 v1, v18

    invoke-direct {v0, v1}, Landroid/widget/MyListView;->isDirectChildHeaderOrFooter(Landroid/view/View;)Z

    move-result v4

    if-eqz v4, :cond_a

    .line 1460
    :cond_9
    move-object/from16 v14, v18

    .line 1462
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->findFocus()Landroid/view/View;

    move-result-object v15

    .line 1463
    if-eqz v15, :cond_a

    .line 1465
    invoke-virtual {v15}, Landroid/view/View;->onStartTemporaryDetach()V

    .line 1468
    :cond_a
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->requestFocus()Z

    .line 1473
    :cond_b
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->detachAllViewsFromParent()V

    .line 1475
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mLayoutMode:I

    move v4, v0

    packed-switch v4, :pswitch_data_1

    .line 1502
    if-nez v11, :cond_15

    .line 1503
    move-object/from16 v0, p0

    iget-boolean v0, v0, Landroid/widget/MyListView;->mStackFromBottom:Z

    move v4, v0

    if-nez v4, :cond_14

    .line 1504
    const/4 v4, 0x0

    const/4 v5, 0x1

    move-object/from16 v0, p0

    move v1, v4

    move v2, v5

    invoke-virtual {v0, v1, v2}, Landroid/widget/MyListView;->lookForSelectablePosition(IZ)I

    .end local v5           #oldSel:Landroid/view/View;
    move-result v22

    .line 1505
    .local v22, position:I
    move-object/from16 v0, p0

    move/from16 v1, v22

    invoke-virtual {v0, v1}, Landroid/widget/MyListView;->setSelectedPositionInt(I)V

    .line 1506
    move-object/from16 v0, p0

    move v1, v8

    invoke-direct {v0, v1}, Landroid/widget/MyListView;->fillFromTop(I)Landroid/view/View;

    move-result-object v24

    .line 1527
    .end local v6           #newSel:Landroid/view/View;
    .end local v22           #position:I
    .local v24, sel:Landroid/view/View;
    :goto_3
    invoke-virtual/range {v23 .. v23}, Landroid/widget/MyAbsListView$RecycleBin;->scrapActiveViews()V

    .line 1529
    if-eqz v24, :cond_1d

    .line 1532
    move-object/from16 v0, p0

    iget-boolean v0, v0, Landroid/widget/MyListView;->mItemsCanFocus:Z

    move v4, v0

    if-eqz v4, :cond_1c

    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->hasFocus()Z

    move-result v4

    if-eqz v4, :cond_1c

    invoke-virtual/range {v24 .. v24}, Landroid/view/View;->hasFocus()Z

    move-result v4

    if-nez v4, :cond_1c

    .line 1533
    move-object/from16 v0, v24

    move-object v1, v14

    if-ne v0, v1, :cond_c

    invoke-virtual {v15}, Landroid/view/View;->requestFocus()Z

    move-result v4

    if-nez v4, :cond_d

    :cond_c
    invoke-virtual/range {v24 .. v24}, Landroid/view/View;->requestFocus()Z

    move-result v4

    if-eqz v4, :cond_1a

    :cond_d
    const/4 v4, 0x1

    move/from16 v16, v4

    .line 1535
    .local v16, focusWasTaken:Z
    :goto_4
    if-nez v16, :cond_1b

    .line 1539
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->getFocusedChild()Landroid/view/View;

    move-result-object v17

    .line 1540
    .local v17, focused:Landroid/view/View;
    if-eqz v17, :cond_e

    .line 1541
    invoke-virtual/range {v17 .. v17}, Landroid/view/View;->clearFocus()V

    .line 1543
    :cond_e
    move-object/from16 v0, p0

    move-object/from16 v1, v24

    invoke-virtual {v0, v1}, Landroid/widget/MyListView;->positionSelector(Landroid/view/View;)V

    .line 1551
    .end local v16           #focusWasTaken:Z
    .end local v17           #focused:Landroid/view/View;
    :goto_5
    invoke-virtual/range {v24 .. v24}, Landroid/view/View;->getTop()I

    move-result v4

    move v0, v4

    move-object/from16 v1, p0

    iput v0, v1, Landroid/widget/MyListView;->mSelectedTop:I

    .line 1565
    :cond_f
    :goto_6
    if-eqz v15, :cond_10

    invoke-virtual {v15}, Landroid/view/View;->getWindowToken()Landroid/os/IBinder;

    move-result-object v4

    if-eqz v4, :cond_10

    .line 1567
    invoke-virtual {v15}, Landroid/view/View;->onFinishTemporaryDetach()V

    .line 1570
    :cond_10
    const/4 v4, 0x0

    move v0, v4

    move-object/from16 v1, p0

    iput v0, v1, Landroid/widget/MyListView;->mLayoutMode:I

    .line 1571
    const/4 v4, 0x0

    move v0, v4

    move-object/from16 v1, p0

    iput-boolean v0, v1, Landroid/widget/MyListView;->mDataChanged:Z

    .line 1572
    const/4 v4, 0x0

    move v0, v4

    move-object/from16 v1, p0

    iput-boolean v0, v1, Landroid/widget/MyListView;->mNeedSync:Z

    .line 1573
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mSelectedPosition:I

    move v4, v0

    move-object/from16 v0, p0

    move v1, v4

    invoke-virtual {v0, v1}, Landroid/widget/MyListView;->setNextSelectedPositionInt(I)V

    .line 1575
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->updateScrollIndicators()V

    .line 1577
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mItemCount:I

    move v4, v0

    if-lez v4, :cond_11

    .line 1578
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->checkSelectionChanged()V

    .line 1581
    :cond_11
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->invokeOnItemScrollListener()V
    :try_end_2
    .catchall {:try_start_2 .. :try_end_2} :catchall_0

    .line 1583
    if-nez v10, :cond_0

    .line 1584
    const/4 v4, 0x0

    move v0, v4

    move-object/from16 v1, p0

    iput-boolean v0, v1, Landroid/widget/MyListView;->mBlockLayoutRequests:Z

    goto/16 :goto_0

    .line 1477
    .end local v24           #sel:Landroid/view/View;
    .restart local v5       #oldSel:Landroid/view/View;
    .restart local v6       #newSel:Landroid/view/View;
    :pswitch_2
    if-eqz v6, :cond_12

    .line 1478
    :try_start_3
    invoke-virtual {v6}, Landroid/view/View;->getTop()I

    move-result v4

    move-object/from16 v0, p0

    move v1, v4

    move v2, v8

    move v3, v9

    invoke-direct {v0, v1, v2, v3}, Landroid/widget/MyListView;->fillFromSelection(III)Landroid/view/View;

    move-result-object v24

    .restart local v24       #sel:Landroid/view/View;
    goto/16 :goto_3

    .line 1480
    .end local v24           #sel:Landroid/view/View;
    :cond_12
    move-object/from16 v0, p0

    move v1, v8

    move v2, v9

    invoke-direct {v0, v1, v2}, Landroid/widget/MyListView;->fillFromMiddle(II)Landroid/view/View;

    move-result-object v24

    .line 1482
    .restart local v24       #sel:Landroid/view/View;
    goto/16 :goto_3

    .line 1484
    .end local v24           #sel:Landroid/view/View;
    :pswitch_3
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mSyncPosition:I

    move v4, v0

    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mSpecificTop:I

    move v5, v0

    .end local v5           #oldSel:Landroid/view/View;
    move-object/from16 v0, p0

    move v1, v4

    move v2, v5

    invoke-direct {v0, v1, v2}, Landroid/widget/MyListView;->fillSpecific(II)Landroid/view/View;

    move-result-object v24

    .line 1485
    .restart local v24       #sel:Landroid/view/View;
    goto/16 :goto_3

    .line 1487
    .end local v24           #sel:Landroid/view/View;
    .restart local v5       #oldSel:Landroid/view/View;
    :pswitch_4
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mItemCount:I

    move v4, v0

    const/4 v5, 0x1

    sub-int/2addr v4, v5

    move-object/from16 v0, p0

    move v1, v4

    move v2, v9

    invoke-direct {v0, v1, v2}, Landroid/widget/MyListView;->fillUp(II)Landroid/view/View;

    .end local v5           #oldSel:Landroid/view/View;
    move-result-object v24

    .line 1488
    .restart local v24       #sel:Landroid/view/View;
    invoke-direct/range {p0 .. p0}, Landroid/widget/MyListView;->adjustViewsUpOrDown()V
    :try_end_3
    .catchall {:try_start_3 .. :try_end_3} :catchall_0

    goto/16 :goto_3

    .line 1583
    .end local v6           #newSel:Landroid/view/View;
    .end local v7           #delta:I
    .end local v8           #childrenTop:I
    .end local v9           #childrenBottom:I
    .end local v11           #childCount:I
    .end local v12           #dataChanged:Z
    .end local v13           #firstPosition:I
    .end local v14           #focusLayoutRestoreDirectChild:Landroid/view/View;
    .end local v15           #focusLayoutRestoreView:Landroid/view/View;
    .end local v18           #focusedChild:Landroid/view/View;
    .end local v21           #oldFirst:Landroid/view/View;
    .end local v23           #recycleBin:Landroid/widget/MyAbsListView$RecycleBin;
    .end local v24           #sel:Landroid/view/View;
    :catchall_0
    move-exception v4

    if-nez v10, :cond_13

    .line 1584
    const/4 v5, 0x0

    move v0, v5

    move-object/from16 v1, p0

    iput-boolean v0, v1, Landroid/widget/MyListView;->mBlockLayoutRequests:Z

    :cond_13
    throw v4

    .line 1491
    .restart local v5       #oldSel:Landroid/view/View;
    .restart local v6       #newSel:Landroid/view/View;
    .restart local v7       #delta:I
    .restart local v8       #childrenTop:I
    .restart local v9       #childrenBottom:I
    .restart local v11       #childCount:I
    .restart local v12       #dataChanged:Z
    .restart local v13       #firstPosition:I
    .restart local v14       #focusLayoutRestoreDirectChild:Landroid/view/View;
    .restart local v15       #focusLayoutRestoreView:Landroid/view/View;
    .restart local v18       #focusedChild:Landroid/view/View;
    .restart local v21       #oldFirst:Landroid/view/View;
    .restart local v23       #recycleBin:Landroid/widget/MyAbsListView$RecycleBin;
    :pswitch_5
    const/4 v4, 0x0

    :try_start_4
    move v0, v4

    move-object/from16 v1, p0

    iput v0, v1, Landroid/widget/MyListView;->mFirstPosition:I

    .line 1492
    move-object/from16 v0, p0

    move v1, v8

    invoke-direct {v0, v1}, Landroid/widget/MyListView;->fillFromTop(I)Landroid/view/View;

    move-result-object v24

    .line 1493
    .restart local v24       #sel:Landroid/view/View;
    invoke-direct/range {p0 .. p0}, Landroid/widget/MyListView;->adjustViewsUpOrDown()V

    goto/16 :goto_3

    .line 1496
    .end local v24           #sel:Landroid/view/View;
    :pswitch_6
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->reconcileSelectedPosition()I

    move-result v4

    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mSpecificTop:I

    move v5, v0

    .end local v5           #oldSel:Landroid/view/View;
    move-object/from16 v0, p0

    move v1, v4

    move v2, v5

    invoke-direct {v0, v1, v2}, Landroid/widget/MyListView;->fillSpecific(II)Landroid/view/View;

    move-result-object v24

    .line 1497
    .restart local v24       #sel:Landroid/view/View;
    goto/16 :goto_3

    .end local v24           #sel:Landroid/view/View;
    .restart local v5       #oldSel:Landroid/view/View;
    :pswitch_7
    move-object/from16 v4, p0

    .line 1499
    invoke-direct/range {v4 .. v9}, Landroid/widget/MyListView;->moveSelection(Landroid/view/View;Landroid/view/View;III)Landroid/view/View;

    move-result-object v24

    .line 1500
    .restart local v24       #sel:Landroid/view/View;
    goto/16 :goto_3

    .line 1508
    .end local v24           #sel:Landroid/view/View;
    :cond_14
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mItemCount:I

    move v4, v0

    const/4 v5, 0x1

    sub-int/2addr v4, v5

    const/4 v5, 0x0

    move-object/from16 v0, p0

    move v1, v4

    move v2, v5

    invoke-virtual {v0, v1, v2}, Landroid/widget/MyListView;->lookForSelectablePosition(IZ)I

    .end local v5           #oldSel:Landroid/view/View;
    move-result v22

    .line 1509
    .restart local v22       #position:I
    move-object/from16 v0, p0

    move/from16 v1, v22

    invoke-virtual {v0, v1}, Landroid/widget/MyListView;->setSelectedPositionInt(I)V

    .line 1510
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mItemCount:I

    move v4, v0

    const/4 v5, 0x1

    sub-int/2addr v4, v5

    move-object/from16 v0, p0

    move v1, v4

    move v2, v9

    invoke-direct {v0, v1, v2}, Landroid/widget/MyListView;->fillUp(II)Landroid/view/View;

    move-result-object v24

    .line 1511
    .restart local v24       #sel:Landroid/view/View;
    goto/16 :goto_3

    .line 1513
    .end local v22           #position:I
    .end local v24           #sel:Landroid/view/View;
    .restart local v5       #oldSel:Landroid/view/View;
    :cond_15
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mSelectedPosition:I

    move v4, v0

    if-ltz v4, :cond_17

    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mSelectedPosition:I

    move v4, v0

    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mItemCount:I

    move v6, v0

    .end local v6           #newSel:Landroid/view/View;
    if-ge v4, v6, :cond_17

    .line 1514
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mSelectedPosition:I

    move v4, v0

    if-nez v5, :cond_16

    move v5, v8

    .end local v5           #oldSel:Landroid/view/View;
    :goto_7
    move-object/from16 v0, p0

    move v1, v4

    move v2, v5

    invoke-direct {v0, v1, v2}, Landroid/widget/MyListView;->fillSpecific(II)Landroid/view/View;

    move-result-object v24

    .restart local v24       #sel:Landroid/view/View;
    goto/16 :goto_3

    .end local v24           #sel:Landroid/view/View;
    .restart local v5       #oldSel:Landroid/view/View;
    :cond_16
    invoke-virtual {v5}, Landroid/view/View;->getTop()I

    move-result v5

    goto :goto_7

    .line 1516
    :cond_17
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mFirstPosition:I

    move v4, v0

    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mItemCount:I

    move v5, v0

    .end local v5           #oldSel:Landroid/view/View;
    if-ge v4, v5, :cond_19

    .line 1517
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mFirstPosition:I

    move v4, v0

    if-nez v21, :cond_18

    move v5, v8

    :goto_8
    move-object/from16 v0, p0

    move v1, v4

    move v2, v5

    invoke-direct {v0, v1, v2}, Landroid/widget/MyListView;->fillSpecific(II)Landroid/view/View;

    move-result-object v24

    .restart local v24       #sel:Landroid/view/View;
    goto/16 :goto_3

    .end local v24           #sel:Landroid/view/View;
    :cond_18
    invoke-virtual/range {v21 .. v21}, Landroid/view/View;->getTop()I

    move-result v5

    goto :goto_8

    .line 1520
    :cond_19
    const/4 v4, 0x0

    move-object/from16 v0, p0

    move v1, v4

    move v2, v8

    invoke-direct {v0, v1, v2}, Landroid/widget/MyListView;->fillSpecific(II)Landroid/view/View;

    move-result-object v24

    .restart local v24       #sel:Landroid/view/View;
    goto/16 :goto_3

    .line 1533
    :cond_1a
    const/4 v4, 0x0

    move/from16 v16, v4

    goto/16 :goto_4

    .line 1545
    .restart local v16       #focusWasTaken:Z
    :cond_1b
    const/4 v4, 0x0

    move-object/from16 v0, v24

    move v1, v4

    invoke-virtual {v0, v1}, Landroid/view/View;->setSelected(Z)V

    .line 1546
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mSelectorRect:Landroid/graphics/Rect;

    move-object v4, v0

    invoke-virtual {v4}, Landroid/graphics/Rect;->setEmpty()V

    goto/16 :goto_5

    .line 1549
    .end local v16           #focusWasTaken:Z
    :cond_1c
    move-object/from16 v0, p0

    move-object/from16 v1, v24

    invoke-virtual {v0, v1}, Landroid/widget/MyListView;->positionSelector(Landroid/view/View;)V

    goto/16 :goto_5

    .line 1553
    :cond_1d
    const/4 v4, 0x0

    move v0, v4

    move-object/from16 v1, p0

    iput v0, v1, Landroid/widget/MyListView;->mSelectedTop:I

    .line 1554
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/widget/MyListView;->mSelectorRect:Landroid/graphics/Rect;

    move-object v4, v0

    invoke-virtual {v4}, Landroid/graphics/Rect;->setEmpty()V

    .line 1558
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->hasFocus()Z

    move-result v4

    if-eqz v4, :cond_f

    if-eqz v15, :cond_f

    .line 1559
    invoke-virtual {v15}, Landroid/view/View;->requestFocus()Z
    :try_end_4
    .catchall {:try_start_4 .. :try_end_4} :catchall_0

    goto/16 :goto_6

    .line 1379
    nop

    :pswitch_data_0
    .packed-switch 0x1
        :pswitch_0
        :pswitch_1
        :pswitch_0
        :pswitch_0
        :pswitch_0
    .end packed-switch

    .line 1475
    :pswitch_data_1
    .packed-switch 0x1
        :pswitch_5
        :pswitch_2
        :pswitch_4
        :pswitch_6
        :pswitch_3
        :pswitch_7
    .end packed-switch
.end method

.method lookForSelectablePosition(IZ)I
    .locals 4
    .parameter "position"
    .parameter "lookDown"

    .prologue
    const/4 v3, -0x1

    .line 1812
    iget-object v0, p0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    .line 1813
    .local v0, adapter:Landroid/widget/ListAdapter;
    if-eqz v0, :cond_0

    invoke-virtual {p0}, Landroid/widget/MyListView;->isInTouchMode()Z

    move-result v2

    if-eqz v2, :cond_1

    :cond_0
    move v2, v3

    .line 1839
    :goto_0
    return v2

    .line 1817
    :cond_1
    invoke-interface {v0}, Landroid/widget/ListAdapter;->getCount()I

    move-result v1

    .line 1818
    .local v1, count:I
    iget-boolean v2, p0, Landroid/widget/MyListView;->mAreAllItemsSelectable:Z

    if-nez v2, :cond_6

    .line 1819
    if-eqz p2, :cond_2

    .line 1820
    const/4 v2, 0x0

    invoke-static {v2, p1}, Ljava/lang/Math;->max(II)I

    move-result p1

    .line 1821
    :goto_1
    if-ge p1, v1, :cond_3

    invoke-interface {v0, p1}, Landroid/widget/ListAdapter;->isEnabled(I)Z

    move-result v2

    if-nez v2, :cond_3

    .line 1822
    add-int/lit8 p1, p1, 0x1

    goto :goto_1

    .line 1825
    :cond_2
    const/4 v2, 0x1

    sub-int v2, v1, v2

    invoke-static {p1, v2}, Ljava/lang/Math;->min(II)I

    move-result p1

    .line 1826
    :goto_2
    if-ltz p1, :cond_3

    invoke-interface {v0, p1}, Landroid/widget/ListAdapter;->isEnabled(I)Z

    move-result v2

    if-nez v2, :cond_3

    .line 1827
    add-int/lit8 p1, p1, -0x1

    goto :goto_2

    .line 1831
    :cond_3
    if-ltz p1, :cond_4

    if-lt p1, v1, :cond_5

    :cond_4
    move v2, v3

    .line 1832
    goto :goto_0

    :cond_5
    move v2, p1

    .line 1834
    goto :goto_0

    .line 1836
    :cond_6
    if-ltz p1, :cond_7

    if-lt p1, v1, :cond_8

    :cond_7
    move v2, v3

    .line 1837
    goto :goto_0

    :cond_8
    move v2, p1

    .line 1839
    goto :goto_0
.end method

.method final measureHeightOfChildren(IIIII)I
    .locals 10
    .parameter "widthMeasureSpec"
    .parameter "startPosition"
    .parameter "endPosition"
    .parameter "maxHeight"
    .parameter "disallowPartialChildPosition"

    .prologue
    .line 1122
    iget-object v0, p0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    .line 1123
    .local v0, adapter:Landroid/widget/ListAdapter;
    if-nez v0, :cond_0

    .line 1124
    iget-object v8, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v8, v8, Landroid/graphics/Rect;->top:I

    iget-object v9, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v9, v9, Landroid/graphics/Rect;->bottom:I

    add-int/2addr v8, v9

    .line 1176
    :goto_0
    return v8

    .line 1128
    :cond_0
    iget-object v8, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v8, v8, Landroid/graphics/Rect;->top:I

    iget-object v9, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v9, v9, Landroid/graphics/Rect;->bottom:I

    add-int v7, v8, v9

    .line 1129
    .local v7, returnedHeight:I
    iget v8, p0, Landroid/widget/MyListView;->mDividerHeight:I

    if-lez v8, :cond_4

    iget-object v8, p0, Landroid/widget/MyListView;->mDivider:Landroid/graphics/drawable/Drawable;

    if-eqz v8, :cond_4

    iget v8, p0, Landroid/widget/MyListView;->mDividerHeight:I

    move v2, v8

    .line 1132
    .local v2, dividerHeight:I
    :goto_1
    const/4 v4, 0x0

    .line 1137
    .local v4, prevHeightWithoutPartialChild:I
    const/4 v8, -0x1

    if-ne p3, v8, :cond_1

    invoke-interface {v0}, Landroid/widget/ListAdapter;->getCount()I

    move-result v8

    const/4 v9, 0x1

    sub-int/2addr v8, v9

    move p3, v8

    .line 1138
    :cond_1
    iget-object v5, p0, Landroid/widget/MyListView;->mRecycler:Landroid/widget/MyAbsListView$RecycleBin;

    .line 1139
    .local v5, recycleBin:Landroid/widget/MyAbsListView$RecycleBin;
    invoke-virtual {p0}, Landroid/widget/MyListView;->recycleOnMeasure()Z

    move-result v6

    .line 1141
    .local v6, recyle:Z
    move v3, p2

    .local v3, i:I
    :goto_2
    if-gt v3, p3, :cond_8

    .line 1142
    invoke-virtual {p0, v3}, Landroid/widget/MyListView;->obtainView(I)Landroid/view/View;

    move-result-object v1

    .line 1144
    .local v1, child:Landroid/view/View;
    invoke-direct {p0, v1, v3, p1}, Landroid/widget/MyListView;->measureScrapChild(Landroid/view/View;II)V

    .line 1146
    if-lez v3, :cond_2

    .line 1148
    add-int/2addr v7, v2

    .line 1152
    :cond_2
    if-eqz v6, :cond_3

    .line 1153
    invoke-virtual {v5, v1}, Landroid/widget/MyAbsListView$RecycleBin;->addScrapView(Landroid/view/View;)V

    .line 1156
    :cond_3
    invoke-virtual {v1}, Landroid/view/View;->getMeasuredHeight()I

    move-result v8

    add-int/2addr v7, v8

    .line 1158
    if-lt v7, p4, :cond_6

    .line 1161
    if-ltz p5, :cond_5

    if-le v3, p5, :cond_5

    if-lez v4, :cond_5

    if-eq v7, p4, :cond_5

    move v8, v4

    goto :goto_0

    .line 1129
    .end local v1           #child:Landroid/view/View;
    .end local v2           #dividerHeight:I
    .end local v3           #i:I
    .end local v4           #prevHeightWithoutPartialChild:I
    .end local v5           #recycleBin:Landroid/widget/MyAbsListView$RecycleBin;
    .end local v6           #recyle:Z
    :cond_4
    const/4 v8, 0x0

    move v2, v8

    goto :goto_1

    .restart local v1       #child:Landroid/view/View;
    .restart local v2       #dividerHeight:I
    .restart local v3       #i:I
    .restart local v4       #prevHeightWithoutPartialChild:I
    .restart local v5       #recycleBin:Landroid/widget/MyAbsListView$RecycleBin;
    .restart local v6       #recyle:Z
    :cond_5
    move v8, p4

    .line 1161
    goto :goto_0

    .line 1169
    :cond_6
    if-ltz p5, :cond_7

    if-lt v3, p5, :cond_7

    .line 1170
    move v4, v7

    .line 1141
    :cond_7
    add-int/lit8 v3, v3, 0x1

    goto :goto_2

    .end local v1           #child:Landroid/view/View;
    :cond_8
    move v8, v7

    .line 1176
    goto :goto_0
.end method

.method protected onFinishInflate()V
    .locals 3

    .prologue
    .line 3009
    invoke-super {p0}, Landroid/widget/MyAbsListView;->onFinishInflate()V

    .line 3011
    invoke-virtual {p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v0

    .line 3012
    .local v0, count:I
    if-lez v0, :cond_1

    .line 3013
    const/4 v1, 0x0

    .local v1, i:I
    :goto_0
    if-ge v1, v0, :cond_0

    .line 3014
    invoke-virtual {p0, v1}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v2

    invoke-virtual {p0, v2}, Landroid/widget/MyListView;->addHeaderView(Landroid/view/View;)V

    .line 3013
    add-int/lit8 v1, v1, 0x1

    goto :goto_0

    .line 3016
    :cond_0
    invoke-virtual {p0}, Landroid/widget/MyListView;->removeAllViews()V

    .line 3018
    .end local v1           #i:I
    :cond_1
    return-void
.end method

.method protected onFocusChanged(ZILandroid/graphics/Rect;)V
    .locals 11
    .parameter "gainFocus"
    .parameter "direction"
    .parameter "previouslyFocusedRect"

    .prologue
    .line 2961
    invoke-super {p0, p1, p2, p3}, Landroid/widget/MyAbsListView;->onFocusChanged(ZILandroid/graphics/Rect;)V

    .line 2963
    const/4 v2, -0x1

    .line 2964
    .local v2, closetChildIndex:I
    if-eqz p1, :cond_2

    if-eqz p3, :cond_2

    .line 2965
    iget v9, p0, Landroid/widget/MyListView;->mScrollX:I

    iget v10, p0, Landroid/widget/MyListView;->mScrollY:I

    invoke-virtual {p3, v9, v10}, Landroid/graphics/Rect;->offset(II)V

    .line 2969
    iget-object v8, p0, Landroid/widget/MyListView;->mTempRect:Landroid/graphics/Rect;

    .line 2970
    .local v8, otherRect:Landroid/graphics/Rect;
    const v6, 0x7fffffff

    .line 2971
    .local v6, minDistance:I
    invoke-virtual {p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v1

    .line 2972
    .local v1, childCount:I
    iget v4, p0, Landroid/widget/MyListView;->mFirstPosition:I

    .line 2973
    .local v4, firstPosition:I
    iget-object v0, p0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    .line 2975
    .local v0, adapter:Landroid/widget/ListAdapter;
    const/4 v5, 0x0

    .local v5, i:I
    :goto_0
    if-ge v5, v1, :cond_2

    .line 2977
    add-int v9, v4, v5

    invoke-interface {v0, v9}, Landroid/widget/ListAdapter;->isEnabled(I)Z

    move-result v9

    if-nez v9, :cond_1

    .line 2975
    :cond_0
    :goto_1
    add-int/lit8 v5, v5, 0x1

    goto :goto_0

    .line 2981
    :cond_1
    invoke-virtual {p0, v5}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v7

    .line 2982
    .local v7, other:Landroid/view/View;
    invoke-virtual {v7, v8}, Landroid/view/View;->getDrawingRect(Landroid/graphics/Rect;)V

    .line 2983
    invoke-virtual {p0, v7, v8}, Landroid/widget/MyListView;->offsetDescendantRectToMyCoords(Landroid/view/View;Landroid/graphics/Rect;)V

    .line 2984
    invoke-static {p3, v8, p2}, Landroid/widget/MyListView;->getDistance(Landroid/graphics/Rect;Landroid/graphics/Rect;I)I

    move-result v3

    .line 2986
    .local v3, distance:I
    if-ge v3, v6, :cond_0

    .line 2987
    move v6, v3

    .line 2988
    move v2, v5

    goto :goto_1

    .line 2993
    .end local v0           #adapter:Landroid/widget/ListAdapter;
    .end local v1           #childCount:I
    .end local v3           #distance:I
    .end local v4           #firstPosition:I
    .end local v5           #i:I
    .end local v6           #minDistance:I
    .end local v7           #other:Landroid/view/View;
    .end local v8           #otherRect:Landroid/graphics/Rect;
    :cond_2
    if-ltz v2, :cond_3

    .line 2994
    iget v9, p0, Landroid/widget/MyListView;->mFirstPosition:I

    add-int/2addr v9, v2

    invoke-virtual {p0, v9}, Landroid/widget/MyListView;->setSelection(I)V

    .line 2998
    :goto_2
    return-void

    .line 2996
    :cond_3
    invoke-virtual {p0}, Landroid/widget/MyListView;->requestLayout()V

    goto :goto_2
.end method

.method public onKeyDown(ILandroid/view/KeyEvent;)Z
    .locals 1
    .parameter "keyCode"
    .parameter "event"

    .prologue
    .line 1881
    const/4 v0, 0x1

    invoke-direct {p0, p1, v0, p2}, Landroid/widget/MyListView;->commonKey(IILandroid/view/KeyEvent;)Z

    move-result v0

    return v0
.end method

.method public onKeyMultiple(IILandroid/view/KeyEvent;)Z
    .locals 1
    .parameter "keyCode"
    .parameter "repeatCount"
    .parameter "event"

    .prologue
    .line 1886
    invoke-direct {p0, p1, p2, p3}, Landroid/widget/MyListView;->commonKey(IILandroid/view/KeyEvent;)Z

    move-result v0

    return v0
.end method

.method public onKeyUp(ILandroid/view/KeyEvent;)Z
    .locals 1
    .parameter "keyCode"
    .parameter "event"

    .prologue
    .line 1891
    const/4 v0, 0x1

    invoke-direct {p0, p1, v0, p2}, Landroid/widget/MyListView;->commonKey(IILandroid/view/KeyEvent;)Z

    move-result v0

    return v0
.end method

.method protected onMeasure(II)V
    .locals 12
    .parameter "widthMeasureSpec"
    .parameter "heightMeasureSpec"

    .prologue
    const/4 v3, -0x1

    const/4 v2, 0x0

    .line 1019
    invoke-super {p0, p1, p2}, Landroid/widget/MyAbsListView;->onMeasure(II)V

    .line 1021
    invoke-static {p1}, Landroid/view/View$MeasureSpec;->getMode(I)I

    move-result v10

    .line 1022
    .local v10, widthMode:I
    invoke-static {p2}, Landroid/view/View$MeasureSpec;->getMode(I)I

    move-result v9

    .line 1023
    .local v9, heightMode:I
    invoke-static {p1}, Landroid/view/View$MeasureSpec;->getSize(I)I

    move-result v11

    .line 1024
    .local v11, widthSize:I
    invoke-static {p2}, Landroid/view/View$MeasureSpec;->getSize(I)I

    move-result v4

    .line 1026
    .local v4, heightSize:I
    const/4 v8, 0x0

    .line 1027
    .local v8, childWidth:I
    const/4 v7, 0x0

    .line 1029
    .local v7, childHeight:I
    iget-object v0, p0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    if-nez v0, :cond_5

    move v0, v2

    :goto_0
    iput v0, p0, Landroid/widget/MyListView;->mItemCount:I

    .line 1030
    iget v0, p0, Landroid/widget/MyListView;->mItemCount:I

    if-lez v0, :cond_1

    if-eqz v10, :cond_0

    if-nez v9, :cond_1

    .line 1032
    :cond_0
    invoke-virtual {p0, v2}, Landroid/widget/MyListView;->obtainView(I)Landroid/view/View;

    move-result-object v6

    .line 1034
    .local v6, child:Landroid/view/View;
    invoke-direct {p0, v6, v2, p1}, Landroid/widget/MyListView;->measureScrapChild(Landroid/view/View;II)V

    .line 1036
    invoke-virtual {v6}, Landroid/view/View;->getMeasuredWidth()I

    move-result v8

    .line 1037
    invoke-virtual {v6}, Landroid/view/View;->getMeasuredHeight()I

    move-result v7

    .line 1039
    invoke-virtual {p0}, Landroid/widget/MyListView;->recycleOnMeasure()Z

    move-result v0

    if-eqz v0, :cond_1

    .line 1040
    iget-object v0, p0, Landroid/widget/MyListView;->mRecycler:Landroid/widget/MyAbsListView$RecycleBin;

    invoke-virtual {v0, v6}, Landroid/widget/MyAbsListView$RecycleBin;->addScrapView(Landroid/view/View;)V

    .line 1044
    .end local v6           #child:Landroid/view/View;
    :cond_1
    if-nez v10, :cond_2

    .line 1045
    iget-object v0, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v0, v0, Landroid/graphics/Rect;->left:I

    iget-object v1, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v1, v1, Landroid/graphics/Rect;->right:I

    add-int/2addr v0, v1

    add-int/2addr v0, v8

    invoke-virtual {p0}, Landroid/widget/MyListView;->getVerticalScrollbarWidth()I

    move-result v1

    add-int v11, v0, v1

    .line 1049
    :cond_2
    if-nez v9, :cond_3

    .line 1050
    iget-object v0, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v0, v0, Landroid/graphics/Rect;->top:I

    iget-object v1, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v1, v1, Landroid/graphics/Rect;->bottom:I

    add-int/2addr v0, v1

    add-int/2addr v0, v7

    invoke-virtual {p0}, Landroid/widget/MyListView;->getVerticalFadingEdgeLength()I

    move-result v1

    mul-int/lit8 v1, v1, 0x2

    add-int v4, v0, v1

    .line 1054
    :cond_3
    const/high16 v0, -0x8000

    if-ne v9, v0, :cond_4

    move-object v0, p0

    move v1, p1

    move v5, v3

    .line 1056
    invoke-virtual/range {v0 .. v5}, Landroid/widget/MyListView;->measureHeightOfChildren(IIIII)I

    move-result v4

    .line 1059
    :cond_4
    invoke-virtual {p0, v11, v4}, Landroid/widget/MyListView;->setMeasuredDimension(II)V

    .line 1060
    iput p1, p0, Landroid/widget/MyListView;->mWidthMeasureSpec:I

    .line 1061
    return-void

    .line 1029
    :cond_5
    iget-object v0, p0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    invoke-interface {v0}, Landroid/widget/ListAdapter;->getCount()I

    move-result v0

    goto :goto_0
.end method

.method public onRestoreInstanceState(Landroid/os/Parcelable;)V
    .locals 3
    .parameter "state"

    .prologue
    .line 3315
    move-object v0, p1

    check-cast v0, Landroid/widget/MyListView$SavedState;

    move-object v1, v0

    .line 3317
    .local v1, ss:Landroid/widget/MyListView$SavedState;
    invoke-virtual {v1}, Landroid/widget/MyListView$SavedState;->getSuperState()Landroid/os/Parcelable;

    move-result-object v2

    invoke-super {p0, v2}, Landroid/widget/MyAbsListView;->onRestoreInstanceState(Landroid/os/Parcelable;)V

    .line 3319
    iget-object v2, v1, Landroid/widget/MyListView$SavedState;->checkState:Landroid/util/SparseBooleanArray;

    if-eqz v2, :cond_0

    .line 3320
    iget-object v2, v1, Landroid/widget/MyListView$SavedState;->checkState:Landroid/util/SparseBooleanArray;

    iput-object v2, p0, Landroid/widget/MyListView;->mCheckStates:Landroid/util/SparseBooleanArray;

    .line 3323
    :cond_0
    return-void
.end method

.method public onSaveInstanceState()Landroid/os/Parcelable;
    .locals 3

    .prologue
    .line 3309
    invoke-super {p0}, Landroid/widget/MyAbsListView;->onSaveInstanceState()Landroid/os/Parcelable;

    move-result-object v0

    .line 3310
    .local v0, superState:Landroid/os/Parcelable;
    new-instance v1, Landroid/widget/MyListView$SavedState;

    iget-object v2, p0, Landroid/widget/MyListView;->mCheckStates:Landroid/util/SparseBooleanArray;

    invoke-direct {v1, v0, v2}, Landroid/widget/MyListView$SavedState;-><init>(Landroid/os/Parcelable;Landroid/util/SparseBooleanArray;)V

    return-object v1
.end method

.method public onTouchEvent(Landroid/view/MotionEvent;)Z
    .locals 1
    .parameter "ev"

    .prologue
    .line 3113
    iget-boolean v0, p0, Landroid/widget/MyListView;->mItemsCanFocus:Z

    if-eqz v0, :cond_0

    invoke-virtual {p1}, Landroid/view/MotionEvent;->getAction()I

    move-result v0

    if-nez v0, :cond_0

    invoke-virtual {p1}, Landroid/view/MotionEvent;->getEdgeFlags()I

    move-result v0

    if-eqz v0, :cond_0

    .line 3116
    const/4 v0, 0x0

    .line 3118
    :goto_0
    return v0

    :cond_0
    invoke-super {p0, p1}, Landroid/widget/MyAbsListView;->onTouchEvent(Landroid/view/MotionEvent;)Z

    move-result v0

    goto :goto_0
.end method

.method pageScroll(I)Z
    .locals 8
    .parameter "direction"

    .prologue
    const/4 v7, 0x0

    const/4 v6, 0x1

    .line 2000
    const/4 v1, -0x1

    .line 2001
    .local v1, nextPage:I
    const/4 v0, 0x0

    .line 2003
    .local v0, down:Z
    const/16 v3, 0x21

    if-ne p1, v3, :cond_3

    .line 2004
    iget v3, p0, Landroid/widget/MyListView;->mSelectedPosition:I

    invoke-virtual {p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v4

    sub-int/2addr v3, v4

    sub-int/2addr v3, v6

    invoke-static {v7, v3}, Ljava/lang/Math;->max(II)I

    move-result v1

    .line 2010
    :cond_0
    :goto_0
    if-ltz v1, :cond_4

    .line 2011
    invoke-virtual {p0, v1, v0}, Landroid/widget/MyListView;->lookForSelectablePosition(IZ)I

    move-result v2

    .line 2012
    .local v2, position:I
    if-ltz v2, :cond_4

    .line 2013
    const/4 v3, 0x4

    iput v3, p0, Landroid/widget/MyListView;->mLayoutMode:I

    .line 2014
    iget v3, p0, Landroid/widget/MyListView;->mPaddingTop:I

    invoke-virtual {p0}, Landroid/widget/MyListView;->getVerticalFadingEdgeLength()I

    move-result v4

    add-int/2addr v3, v4

    iput v3, p0, Landroid/widget/MyListView;->mSpecificTop:I

    .line 2016
    if-eqz v0, :cond_1

    iget v3, p0, Landroid/widget/MyListView;->mItemCount:I

    invoke-virtual {p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v4

    sub-int/2addr v3, v4

    if-le v2, v3, :cond_1

    .line 2017
    const/4 v3, 0x3

    iput v3, p0, Landroid/widget/MyListView;->mLayoutMode:I

    .line 2020
    :cond_1
    if-nez v0, :cond_2

    invoke-virtual {p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v3

    if-ge v2, v3, :cond_2

    .line 2021
    iput v6, p0, Landroid/widget/MyListView;->mLayoutMode:I

    .line 2024
    :cond_2
    invoke-virtual {p0, v2}, Landroid/widget/MyListView;->setSelectionInt(I)V

    .line 2025
    invoke-virtual {p0}, Landroid/widget/MyListView;->invokeOnItemScrollListener()V

    .line 2026
    invoke-virtual {p0}, Landroid/widget/MyListView;->invalidate()V

    move v3, v6

    .line 2032
    .end local v2           #position:I
    :goto_1
    return v3

    .line 2005
    :cond_3
    const/16 v3, 0x82

    if-ne p1, v3, :cond_0

    .line 2006
    iget v3, p0, Landroid/widget/MyListView;->mItemCount:I

    sub-int/2addr v3, v6

    iget v4, p0, Landroid/widget/MyListView;->mSelectedPosition:I

    invoke-virtual {p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v5

    add-int/2addr v4, v5

    sub-int/2addr v4, v6

    invoke-static {v3, v4}, Ljava/lang/Math;->min(II)I

    move-result v1

    .line 2007
    const/4 v0, 0x1

    goto :goto_0

    :cond_4
    move v3, v7

    .line 2032
    goto :goto_1
.end method

.method public performItemClick(Landroid/view/View;IJ)Z
    .locals 6
    .parameter "view"
    .parameter "position"
    .parameter "id"

    .prologue
    const/4 v5, 0x1

    const/4 v4, 0x0

    .line 3148
    const/4 v0, 0x0

    .line 3150
    .local v0, handled:Z
    iget v2, p0, Landroid/widget/MyListView;->mChoiceMode:I

    if-eqz v2, :cond_1

    .line 3151
    const/4 v0, 0x1

    .line 3153
    iget v2, p0, Landroid/widget/MyListView;->mChoiceMode:I

    const/4 v3, 0x2

    if-ne v2, v3, :cond_3

    .line 3154
    iget-object v2, p0, Landroid/widget/MyListView;->mCheckStates:Landroid/util/SparseBooleanArray;

    invoke-virtual {v2, p2, v4}, Landroid/util/SparseBooleanArray;->get(IZ)Z

    move-result v1

    .line 3155
    .local v1, oldValue:Z
    iget-object v2, p0, Landroid/widget/MyListView;->mCheckStates:Landroid/util/SparseBooleanArray;

    if-nez v1, :cond_2

    move v3, v5

    :goto_0
    invoke-virtual {v2, p2, v3}, Landroid/util/SparseBooleanArray;->put(IZ)V

    .line 3164
    :cond_0
    :goto_1
    iput-boolean v5, p0, Landroid/widget/MyListView;->mDataChanged:Z

    .line 3165
    invoke-virtual {p0}, Landroid/widget/MyListView;->rememberSyncState()V

    .line 3166
    invoke-virtual {p0}, Landroid/widget/MyListView;->requestLayout()V

    .line 3169
    .end local v1           #oldValue:Z
    :cond_1
    invoke-super {p0, p1, p2, p3, p4}, Landroid/widget/MyAbsListView;->performItemClick(Landroid/view/View;IJ)Z

    move-result v2

    or-int/2addr v0, v2

    .line 3171
    return v0

    .restart local v1       #oldValue:Z
    :cond_2
    move v3, v4

    .line 3155
    goto :goto_0

    .line 3157
    .end local v1           #oldValue:Z
    :cond_3
    iget-object v2, p0, Landroid/widget/MyListView;->mCheckStates:Landroid/util/SparseBooleanArray;

    invoke-virtual {v2, p2, v4}, Landroid/util/SparseBooleanArray;->get(IZ)Z

    move-result v1

    .line 3158
    .restart local v1       #oldValue:Z
    if-nez v1, :cond_0

    .line 3159
    iget-object v2, p0, Landroid/widget/MyListView;->mCheckStates:Landroid/util/SparseBooleanArray;

    invoke-virtual {v2}, Landroid/util/SparseBooleanArray;->clear()V

    .line 3160
    iget-object v2, p0, Landroid/widget/MyListView;->mCheckStates:Landroid/util/SparseBooleanArray;

    invoke-virtual {v2, p2, v5}, Landroid/util/SparseBooleanArray;->put(IZ)V

    goto :goto_1
.end method

.method protected recycleOnMeasure()Z
    .locals 1

    .prologue
    .line 1090
    const/4 v0, 0x1

    return v0
.end method

.method public removeFooterView(Landroid/view/View;)Z
    .locals 2
    .parameter "v"

    .prologue
    .line 388
    iget-object v1, p0, Landroid/widget/MyListView;->mFooterViewInfos:Ljava/util/ArrayList;

    invoke-virtual {v1}, Ljava/util/ArrayList;->size()I

    move-result v1

    if-lez v1, :cond_1

    .line 389
    const/4 v0, 0x0

    .line 390
    .local v0, result:Z
    iget-object v1, p0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    check-cast v1, Landroid/widget/MyHeaderViewListAdapter;

    invoke-virtual {v1, p1}, Landroid/widget/MyHeaderViewListAdapter;->removeFooter(Landroid/view/View;)Z

    move-result v1

    if-eqz v1, :cond_0

    .line 391
    iget-object v1, p0, Landroid/widget/MyListView;->mDataSetObserver:Landroid/widget/MyAdapterView$AdapterDataSetObserver;

    invoke-virtual {v1}, Landroid/widget/MyAdapterView$AdapterDataSetObserver;->onChanged()V

    .line 392
    const/4 v0, 0x1

    .line 394
    :cond_0
    iget-object v1, p0, Landroid/widget/MyListView;->mFooterViewInfos:Ljava/util/ArrayList;

    invoke-direct {p0, p1, v1}, Landroid/widget/MyListView;->removeFixedViewInfo(Landroid/view/View;Ljava/util/ArrayList;)V

    move v1, v0

    .line 397
    .end local v0           #result:Z
    :goto_0
    return v1

    :cond_1
    const/4 v1, 0x0

    goto :goto_0
.end method

.method public removeHeaderView(Landroid/view/View;)Z
    .locals 2
    .parameter "v"

    .prologue
    .line 290
    iget-object v1, p0, Landroid/widget/MyListView;->mHeaderViewInfos:Ljava/util/ArrayList;

    invoke-virtual {v1}, Ljava/util/ArrayList;->size()I

    move-result v1

    if-lez v1, :cond_1

    .line 291
    const/4 v0, 0x0

    .line 292
    .local v0, result:Z
    iget-object v1, p0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    check-cast v1, Landroid/widget/MyHeaderViewListAdapter;

    invoke-virtual {v1, p1}, Landroid/widget/MyHeaderViewListAdapter;->removeHeader(Landroid/view/View;)Z

    move-result v1

    if-eqz v1, :cond_0

    .line 293
    iget-object v1, p0, Landroid/widget/MyListView;->mDataSetObserver:Landroid/widget/MyAdapterView$AdapterDataSetObserver;

    invoke-virtual {v1}, Landroid/widget/MyAdapterView$AdapterDataSetObserver;->onChanged()V

    .line 294
    const/4 v0, 0x1

    .line 296
    :cond_0
    iget-object v1, p0, Landroid/widget/MyListView;->mHeaderViewInfos:Ljava/util/ArrayList;

    invoke-direct {p0, p1, v1}, Landroid/widget/MyListView;->removeFixedViewInfo(Landroid/view/View;Ljava/util/ArrayList;)V

    move v1, v0

    .line 299
    .end local v0           #result:Z
    :goto_0
    return v1

    :cond_1
    const/4 v1, 0x0

    goto :goto_0
.end method

.method public requestChildRectangleOnScreen(Landroid/view/View;Landroid/graphics/Rect;Z)Z
    .locals 18
    .parameter "child"
    .parameter "rect"
    .parameter "immediate"

    .prologue
    .line 519
    move-object/from16 v0, p2

    iget v0, v0, Landroid/graphics/Rect;->top:I

    move v11, v0

    .line 522
    .local v11, rectTopWithinChild:I
    invoke-virtual/range {p1 .. p1}, Landroid/view/View;->getLeft()I

    move-result v15

    invoke-virtual/range {p1 .. p1}, Landroid/view/View;->getTop()I

    move-result v16

    move-object/from16 v0, p2

    move v1, v15

    move/from16 v2, v16

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Rect;->offset(II)V

    .line 523
    invoke-virtual/range {p1 .. p1}, Landroid/view/View;->getScrollX()I

    move-result v15

    neg-int v15, v15

    invoke-virtual/range {p1 .. p1}, Landroid/view/View;->getScrollY()I

    move-result v16

    move/from16 v0, v16

    neg-int v0, v0

    move/from16 v16, v0

    move-object/from16 v0, p2

    move v1, v15

    move/from16 v2, v16

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Rect;->offset(II)V

    .line 525
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->getHeight()I

    move-result v8

    .line 526
    .local v8, height:I
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->getScrollY()I

    move-result v10

    .line 527
    .local v10, listUnfadedTop:I
    add-int v9, v10, v8

    .line 528
    .local v9, listUnfadedBottom:I
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->getVerticalFadingEdgeLength()I

    move-result v7

    .line 530
    .local v7, fadingEdge:I
    invoke-direct/range {p0 .. p0}, Landroid/widget/MyListView;->showingTopFadingEdge()Z

    move-result v15

    if-eqz v15, :cond_1

    .line 532
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mSelectedPosition:I

    move v15, v0

    if-gtz v15, :cond_0

    if-le v11, v7, :cond_1

    .line 533
    :cond_0
    add-int/2addr v10, v7

    .line 537
    :cond_1
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->getChildCount()I

    move-result v4

    .line 538
    .local v4, childCount:I
    const/4 v15, 0x1

    sub-int v15, v4, v15

    move-object/from16 v0, p0

    move v1, v15

    invoke-virtual {v0, v1}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v15

    invoke-virtual {v15}, Landroid/view/View;->getBottom()I

    move-result v3

    .line 540
    .local v3, bottomOfBottomChild:I
    invoke-direct/range {p0 .. p0}, Landroid/widget/MyListView;->showingBottomFadingEdge()Z

    move-result v15

    if-eqz v15, :cond_3

    .line 542
    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mSelectedPosition:I

    move v15, v0

    move-object/from16 v0, p0

    iget v0, v0, Landroid/widget/MyListView;->mItemCount:I

    move/from16 v16, v0

    const/16 v17, 0x1

    sub-int v16, v16, v17

    move v0, v15

    move/from16 v1, v16

    if-lt v0, v1, :cond_2

    move-object/from16 v0, p2

    iget v0, v0, Landroid/graphics/Rect;->bottom:I

    move v15, v0

    sub-int v16, v3, v7

    move v0, v15

    move/from16 v1, v16

    if-ge v0, v1, :cond_3

    .line 544
    :cond_2
    sub-int/2addr v9, v7

    .line 548
    :cond_3
    const/4 v13, 0x0

    .line 550
    .local v13, scrollYDelta:I
    move-object/from16 v0, p2

    iget v0, v0, Landroid/graphics/Rect;->bottom:I

    move v15, v0

    if-le v15, v9, :cond_7

    move-object/from16 v0, p2

    iget v0, v0, Landroid/graphics/Rect;->top:I

    move v15, v0

    if-le v15, v10, :cond_7

    .line 555
    invoke-virtual/range {p2 .. p2}, Landroid/graphics/Rect;->height()I

    move-result v15

    if-le v15, v8, :cond_6

    .line 557
    move-object/from16 v0, p2

    iget v0, v0, Landroid/graphics/Rect;->top:I

    move v15, v0

    sub-int/2addr v15, v10

    add-int/2addr v13, v15

    .line 564
    :goto_0
    sub-int v6, v3, v9

    .line 565
    .local v6, distanceToBottom:I
    invoke-static {v13, v6}, Ljava/lang/Math;->min(II)I

    move-result v13

    .line 585
    .end local v6           #distanceToBottom:I
    :cond_4
    :goto_1
    if-eqz v13, :cond_9

    const/4 v15, 0x1

    move v12, v15

    .line 586
    .local v12, scroll:Z
    :goto_2
    if-eqz v12, :cond_5

    .line 587
    neg-int v15, v13

    move-object/from16 v0, p0

    move v1, v15

    invoke-direct {v0, v1}, Landroid/widget/MyListView;->scrollListItemsBy(I)V

    .line 588
    invoke-virtual/range {p0 .. p1}, Landroid/widget/MyListView;->positionSelector(Landroid/view/View;)V

    .line 589
    invoke-virtual/range {p1 .. p1}, Landroid/view/View;->getTop()I

    move-result v15

    move v0, v15

    move-object/from16 v1, p0

    iput v0, v1, Landroid/widget/MyListView;->mSelectedTop:I

    .line 590
    invoke-virtual/range {p0 .. p0}, Landroid/widget/MyListView;->invalidate()V

    .line 592
    :cond_5
    return v12

    .line 560
    .end local v12           #scroll:Z
    :cond_6
    move-object/from16 v0, p2

    iget v0, v0, Landroid/graphics/Rect;->bottom:I

    move v15, v0

    sub-int/2addr v15, v9

    add-int/2addr v13, v15

    goto :goto_0

    .line 566
    :cond_7
    move-object/from16 v0, p2

    iget v0, v0, Landroid/graphics/Rect;->top:I

    move v15, v0

    if-ge v15, v10, :cond_4

    move-object/from16 v0, p2

    iget v0, v0, Landroid/graphics/Rect;->bottom:I

    move v15, v0

    if-ge v15, v9, :cond_4

    .line 571
    invoke-virtual/range {p2 .. p2}, Landroid/graphics/Rect;->height()I

    move-result v15

    if-le v15, v8, :cond_8

    .line 573
    move-object/from16 v0, p2

    iget v0, v0, Landroid/graphics/Rect;->bottom:I

    move v15, v0

    sub-int v15, v9, v15

    sub-int/2addr v13, v15

    .line 580
    :goto_3
    const/4 v15, 0x0

    move-object/from16 v0, p0

    move v1, v15

    invoke-virtual {v0, v1}, Landroid/widget/MyListView;->getChildAt(I)Landroid/view/View;

    move-result-object v15

    invoke-virtual {v15}, Landroid/view/View;->getTop()I

    move-result v14

    .line 581
    .local v14, top:I
    sub-int v5, v14, v10

    .line 582
    .local v5, deltaToTop:I
    invoke-static {v13, v5}, Ljava/lang/Math;->max(II)I

    move-result v13

    goto :goto_1

    .line 576
    .end local v5           #deltaToTop:I
    .end local v14           #top:I
    :cond_8
    move-object/from16 v0, p2

    iget v0, v0, Landroid/graphics/Rect;->top:I

    move v15, v0

    sub-int v15, v10, v15

    sub-int/2addr v13, v15

    goto :goto_3

    .line 585
    :cond_9
    const/4 v15, 0x0

    move v12, v15

    goto :goto_2
.end method

.method resetList()V
    .locals 1

    .prologue
    .line 489
    invoke-super {p0}, Landroid/widget/MyAbsListView;->resetList()V

    .line 490
    const/4 v0, 0x0

    iput v0, p0, Landroid/widget/MyListView;->mLayoutMode:I

    .line 491
    return-void
.end method

.method public bridge synthetic setAdapter(Landroid/widget/Adapter;)V
    .locals 0
    .parameter "x0"

    .prologue
    .line 65
    check-cast p1, Landroid/widget/ListAdapter;

    .end local p1
    invoke-virtual {p0, p1}, Landroid/widget/MyListView;->setAdapter(Landroid/widget/ListAdapter;)V

    return-void
.end method

.method public setAdapter(Landroid/widget/ListAdapter;)V
    .locals 6
    .parameter "adapter"

    .prologue
    const/4 v5, 0x0

    const/4 v4, 0x1

    .line 429
    iget-object v1, p0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    if-eqz v1, :cond_0

    .line 430
    iget-object v1, p0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    iget-object v2, p0, Landroid/widget/MyListView;->mDataSetObserver:Landroid/widget/MyAdapterView$AdapterDataSetObserver;

    invoke-interface {v1, v2}, Landroid/widget/ListAdapter;->unregisterDataSetObserver(Landroid/database/DataSetObserver;)V

    .line 433
    :cond_0
    invoke-virtual {p0}, Landroid/widget/MyListView;->resetList()V

    .line 434
    iget-object v1, p0, Landroid/widget/MyListView;->mRecycler:Landroid/widget/MyAbsListView$RecycleBin;

    invoke-virtual {v1}, Landroid/widget/MyAbsListView$RecycleBin;->clear()V

    .line 436
    iget-object v1, p0, Landroid/widget/MyListView;->mHeaderViewInfos:Ljava/util/ArrayList;

    invoke-virtual {v1}, Ljava/util/ArrayList;->size()I

    move-result v1

    if-gtz v1, :cond_1

    iget-object v1, p0, Landroid/widget/MyListView;->mFooterViewInfos:Ljava/util/ArrayList;

    invoke-virtual {v1}, Ljava/util/ArrayList;->size()I

    move-result v1

    if-lez v1, :cond_4

    .line 437
    :cond_1
    new-instance v1, Landroid/widget/MyHeaderViewListAdapter;

    iget-object v2, p0, Landroid/widget/MyListView;->mHeaderViewInfos:Ljava/util/ArrayList;

    iget-object v3, p0, Landroid/widget/MyListView;->mFooterViewInfos:Ljava/util/ArrayList;

    invoke-direct {v1, v2, v3, p1}, Landroid/widget/MyHeaderViewListAdapter;-><init>(Ljava/util/ArrayList;Ljava/util/ArrayList;Landroid/widget/ListAdapter;)V

    iput-object v1, p0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    .line 442
    :goto_0
    const/4 v1, -0x1

    iput v1, p0, Landroid/widget/MyListView;->mOldSelectedPosition:I

    .line 443
    const-wide/high16 v1, -0x8000

    iput-wide v1, p0, Landroid/widget/MyListView;->mOldSelectedRowId:J

    .line 444
    iget-object v1, p0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    if-eqz v1, :cond_6

    .line 445
    iget-object v1, p0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    invoke-interface {v1}, Landroid/widget/ListAdapter;->areAllItemsEnabled()Z

    move-result v1

    iput-boolean v1, p0, Landroid/widget/MyListView;->mAreAllItemsSelectable:Z

    .line 446
    iget v1, p0, Landroid/widget/MyListView;->mItemCount:I

    iput v1, p0, Landroid/widget/MyListView;->mOldItemCount:I

    .line 447
    iget-object v1, p0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    invoke-interface {v1}, Landroid/widget/ListAdapter;->getCount()I

    move-result v1

    iput v1, p0, Landroid/widget/MyListView;->mItemCount:I

    .line 448
    invoke-virtual {p0}, Landroid/widget/MyListView;->checkFocus()V

    .line 450
    new-instance v1, Landroid/widget/MyAdapterView$AdapterDataSetObserver;

    invoke-direct {v1, p0}, Landroid/widget/MyAdapterView$AdapterDataSetObserver;-><init>(Landroid/widget/MyAdapterView;)V

    iput-object v1, p0, Landroid/widget/MyListView;->mDataSetObserver:Landroid/widget/MyAdapterView$AdapterDataSetObserver;

    .line 451
    iget-object v1, p0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    iget-object v2, p0, Landroid/widget/MyListView;->mDataSetObserver:Landroid/widget/MyAdapterView$AdapterDataSetObserver;

    invoke-interface {v1, v2}, Landroid/widget/ListAdapter;->registerDataSetObserver(Landroid/database/DataSetObserver;)V

    .line 453
    iget-object v1, p0, Landroid/widget/MyListView;->mRecycler:Landroid/widget/MyAbsListView$RecycleBin;

    iget-object v2, p0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    invoke-interface {v2}, Landroid/widget/ListAdapter;->getViewTypeCount()I

    move-result v2

    invoke-virtual {v1, v2}, Landroid/widget/MyAbsListView$RecycleBin;->setViewTypeCount(I)V

    .line 456
    iget-boolean v1, p0, Landroid/widget/MyListView;->mStackFromBottom:Z

    if-eqz v1, :cond_5

    .line 457
    iget v1, p0, Landroid/widget/MyListView;->mItemCount:I

    sub-int/2addr v1, v4

    invoke-virtual {p0, v1, v5}, Landroid/widget/MyListView;->lookForSelectablePosition(IZ)I

    move-result v0

    .line 461
    .local v0, position:I
    :goto_1
    invoke-virtual {p0, v0}, Landroid/widget/MyListView;->setSelectedPositionInt(I)V

    .line 462
    invoke-virtual {p0, v0}, Landroid/widget/MyListView;->setNextSelectedPositionInt(I)V

    .line 464
    iget v1, p0, Landroid/widget/MyListView;->mItemCount:I

    if-nez v1, :cond_2

    .line 466
    invoke-virtual {p0}, Landroid/widget/MyListView;->checkSelectionChanged()V

    .line 476
    .end local v0           #position:I
    :cond_2
    :goto_2
    iget-object v1, p0, Landroid/widget/MyListView;->mCheckStates:Landroid/util/SparseBooleanArray;

    if-eqz v1, :cond_3

    .line 477
    iget-object v1, p0, Landroid/widget/MyListView;->mCheckStates:Landroid/util/SparseBooleanArray;

    invoke-virtual {v1}, Landroid/util/SparseBooleanArray;->clear()V

    .line 480
    :cond_3
    invoke-virtual {p0}, Landroid/widget/MyListView;->requestLayout()V

    .line 481
    return-void

    .line 439
    :cond_4
    iput-object p1, p0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    goto :goto_0

    .line 459
    :cond_5
    invoke-virtual {p0, v5, v4}, Landroid/widget/MyListView;->lookForSelectablePosition(IZ)I

    move-result v0

    .restart local v0       #position:I
    goto :goto_1

    .line 470
    .end local v0           #position:I
    :cond_6
    iput-boolean v4, p0, Landroid/widget/MyListView;->mAreAllItemsSelectable:Z

    .line 471
    invoke-virtual {p0}, Landroid/widget/MyListView;->checkFocus()V

    .line 473
    invoke-virtual {p0}, Landroid/widget/MyListView;->checkSelectionChanged()V

    goto :goto_2
.end method

.method public setChoiceMode(I)V
    .locals 1
    .parameter "choiceMode"

    .prologue
    .line 3140
    iput p1, p0, Landroid/widget/MyListView;->mChoiceMode:I

    .line 3141
    iget v0, p0, Landroid/widget/MyListView;->mChoiceMode:I

    if-eqz v0, :cond_0

    iget-object v0, p0, Landroid/widget/MyListView;->mCheckStates:Landroid/util/SparseBooleanArray;

    if-nez v0, :cond_0

    .line 3142
    new-instance v0, Landroid/util/SparseBooleanArray;

    invoke-direct {v0}, Landroid/util/SparseBooleanArray;-><init>()V

    iput-object v0, p0, Landroid/widget/MyListView;->mCheckStates:Landroid/util/SparseBooleanArray;

    .line 3144
    :cond_0
    return-void
.end method

.method public setDivider(Landroid/graphics/drawable/Drawable;)V
    .locals 1
    .parameter "divider"

    .prologue
    const/4 v0, 0x0

    .line 2904
    if-eqz p1, :cond_0

    .line 2905
    invoke-virtual {p1}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I

    move-result v0

    iput v0, p0, Landroid/widget/MyListView;->mDividerHeight:I

    .line 2906
    instance-of v0, p1, Landroid/graphics/drawable/ColorDrawable;

    iput-boolean v0, p0, Landroid/widget/MyListView;->mClipDivider:Z

    .line 2911
    :goto_0
    iput-object p1, p0, Landroid/widget/MyListView;->mDivider:Landroid/graphics/drawable/Drawable;

    .line 2912
    invoke-virtual {p0}, Landroid/widget/MyListView;->requestLayoutIfNecessary()V

    .line 2913
    return-void

    .line 2908
    :cond_0
    iput v0, p0, Landroid/widget/MyListView;->mDividerHeight:I

    .line 2909
    iput-boolean v0, p0, Landroid/widget/MyListView;->mClipDivider:Z

    goto :goto_0
.end method

.method public setDividerHeight(I)V
    .locals 0
    .parameter "height"

    .prologue
    .line 2929
    iput p1, p0, Landroid/widget/MyListView;->mDividerHeight:I

    .line 2930
    invoke-virtual {p0}, Landroid/widget/MyListView;->requestLayoutIfNecessary()V

    .line 2931
    return-void
.end method

.method public setFooterDividersEnabled(Z)V
    .locals 0
    .parameter "footerDividersEnabled"

    .prologue
    .line 2955
    iput-boolean p1, p0, Landroid/widget/MyListView;->mFooterDividersEnabled:Z

    .line 2956
    invoke-virtual {p0}, Landroid/widget/MyListView;->invalidate()V

    .line 2957
    return-void
.end method

.method public setHeaderDividersEnabled(Z)V
    .locals 0
    .parameter "headerDividersEnabled"

    .prologue
    .line 2942
    iput-boolean p1, p0, Landroid/widget/MyListView;->mHeaderDividersEnabled:Z

    .line 2943
    invoke-virtual {p0}, Landroid/widget/MyListView;->invalidate()V

    .line 2944
    return-void
.end method

.method public setItemChecked(IZ)V
    .locals 4
    .parameter "position"
    .parameter "value"

    .prologue
    const/4 v3, 0x1

    .line 3183
    iget v1, p0, Landroid/widget/MyListView;->mChoiceMode:I

    if-nez v1, :cond_1

    .line 3203
    :cond_0
    :goto_0
    return-void

    .line 3187
    :cond_1
    iget v1, p0, Landroid/widget/MyListView;->mChoiceMode:I

    const/4 v2, 0x2

    if-ne v1, v2, :cond_3

    .line 3188
    iget-object v1, p0, Landroid/widget/MyListView;->mCheckStates:Landroid/util/SparseBooleanArray;

    invoke-virtual {v1, p1, p2}, Landroid/util/SparseBooleanArray;->put(IZ)V

    .line 3198
    :cond_2
    :goto_1
    iget-boolean v1, p0, Landroid/widget/MyListView;->mInLayout:Z

    if-nez v1, :cond_0

    iget-boolean v1, p0, Landroid/widget/MyListView;->mBlockLayoutRequests:Z

    if-nez v1, :cond_0

    .line 3199
    iput-boolean v3, p0, Landroid/widget/MyListView;->mDataChanged:Z

    .line 3200
    invoke-virtual {p0}, Landroid/widget/MyListView;->rememberSyncState()V

    .line 3201
    invoke-virtual {p0}, Landroid/widget/MyListView;->requestLayout()V

    goto :goto_0

    .line 3190
    :cond_3
    iget-object v1, p0, Landroid/widget/MyListView;->mCheckStates:Landroid/util/SparseBooleanArray;

    const/4 v2, 0x0

    invoke-virtual {v1, p1, v2}, Landroid/util/SparseBooleanArray;->get(IZ)Z

    move-result v0

    .line 3191
    .local v0, oldValue:Z
    iget-object v1, p0, Landroid/widget/MyListView;->mCheckStates:Landroid/util/SparseBooleanArray;

    invoke-virtual {v1}, Landroid/util/SparseBooleanArray;->clear()V

    .line 3192
    if-nez v0, :cond_2

    .line 3193
    iget-object v1, p0, Landroid/widget/MyListView;->mCheckStates:Landroid/util/SparseBooleanArray;

    invoke-virtual {v1, p1, v3}, Landroid/util/SparseBooleanArray;->put(IZ)V

    goto :goto_1
.end method

.method public setItemsCanFocus(Z)V
    .locals 1
    .parameter "itemsCanFocus"

    .prologue
    .line 2767
    iput-boolean p1, p0, Landroid/widget/MyListView;->mItemsCanFocus:Z

    .line 2768
    if-nez p1, :cond_0

    .line 2769
    const/high16 v0, 0x6

    invoke-virtual {p0, v0}, Landroid/widget/MyListView;->setDescendantFocusability(I)V

    .line 2771
    :cond_0
    return-void
.end method

.method public setSelection(I)V
    .locals 1
    .parameter "position"

    .prologue
    .line 1752
    const/4 v0, 0x0

    invoke-virtual {p0, p1, v0}, Landroid/widget/MyListView;->setSelectionFromTop(II)V

    .line 1753
    return-void
.end method

.method public setSelectionAfterHeaderView()V
    .locals 2

    .prologue
    .line 1848
    iget-object v1, p0, Landroid/widget/MyListView;->mHeaderViewInfos:Ljava/util/ArrayList;

    invoke-virtual {v1}, Ljava/util/ArrayList;->size()I

    move-result v0

    .line 1849
    .local v0, count:I
    if-lez v0, :cond_0

    .line 1850
    const/4 v1, 0x0

    iput v1, p0, Landroid/widget/MyListView;->mNextSelectedPosition:I

    .line 1861
    :goto_0
    return-void

    .line 1854
    :cond_0
    iget-object v1, p0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    if-eqz v1, :cond_1

    .line 1855
    invoke-virtual {p0, v0}, Landroid/widget/MyListView;->setSelection(I)V

    goto :goto_0

    .line 1857
    :cond_1
    iput v0, p0, Landroid/widget/MyListView;->mNextSelectedPosition:I

    .line 1858
    const/4 v1, 0x2

    iput v1, p0, Landroid/widget/MyListView;->mLayoutMode:I

    goto :goto_0
.end method

.method public setSelectionFromTop(II)V
    .locals 2
    .parameter "position"
    .parameter "y"

    .prologue
    .line 1765
    iget-object v0, p0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    if-nez v0, :cond_1

    .line 1789
    :cond_0
    :goto_0
    return-void

    .line 1769
    :cond_1
    invoke-virtual {p0}, Landroid/widget/MyListView;->isInTouchMode()Z

    move-result v0

    if-nez v0, :cond_4

    .line 1770
    const/4 v0, 0x1

    invoke-virtual {p0, p1, v0}, Landroid/widget/MyListView;->lookForSelectablePosition(IZ)I

    move-result p1

    .line 1771
    if-ltz p1, :cond_2

    .line 1772
    invoke-virtual {p0, p1}, Landroid/widget/MyListView;->setNextSelectedPositionInt(I)V

    .line 1778
    :cond_2
    :goto_1
    if-ltz p1, :cond_0

    .line 1779
    const/4 v0, 0x4

    iput v0, p0, Landroid/widget/MyListView;->mLayoutMode:I

    .line 1780
    iget-object v0, p0, Landroid/widget/MyListView;->mListPadding:Landroid/graphics/Rect;

    iget v0, v0, Landroid/graphics/Rect;->top:I

    add-int/2addr v0, p2

    iput v0, p0, Landroid/widget/MyListView;->mSpecificTop:I

    .line 1782
    iget-boolean v0, p0, Landroid/widget/MyListView;->mNeedSync:Z

    if-eqz v0, :cond_3

    .line 1783
    iput p1, p0, Landroid/widget/MyListView;->mSyncPosition:I

    .line 1784
    iget-object v0, p0, Landroid/widget/MyListView;->mAdapter:Landroid/widget/ListAdapter;

    invoke-interface {v0, p1}, Landroid/widget/ListAdapter;->getItemId(I)J

    move-result-wide v0

    iput-wide v0, p0, Landroid/widget/MyListView;->mSyncRowId:J

    .line 1787
    :cond_3
    invoke-virtual {p0}, Landroid/widget/MyListView;->requestLayout()V

    goto :goto_0

    .line 1775
    :cond_4
    iput p1, p0, Landroid/widget/MyListView;->mResurrectToPosition:I

    goto :goto_1
.end method

.method setSelectionInt(I)V
    .locals 0
    .parameter "position"

    .prologue
    .line 1798
    invoke-virtual {p0, p1}, Landroid/widget/MyListView;->setNextSelectedPositionInt(I)V

    .line 1799
    invoke-virtual {p0}, Landroid/widget/MyListView;->layoutChildren()V

    .line 1800
    return-void
.end method
